📄 mdlmain.bas
字号:
Else
If FileLen(OldName) <> OCXSIZE4 Then
Name (OldName) As (OldName & "." & Format(Date, "yyyymmdd") & Second(Time))
Ocx = LoadResData(104, "CUSTOM")
Open OldName For Binary As #1
For Counter = 0 To OCXSIZE4 - 1
Put #1, , Ocx(Counter)
Next Counter
Close #1
Result = Shell("RegSvr32 /s " + "OptionCurve.ocx")
End If
End If
' 105,DCSSync.ocx,(94208)
OldName = Fs.GetSpecialFolder(1) & "\DCSSync.ocx"
If Dir(OldName) = "" Then
Ocx = LoadResData(105, "CUSTOM")
Open OldName For Binary As #1
For Counter = 0 To OCXSIZE5 - 1
Put #1, , Ocx(Counter)
Next Counter
Close #1
Result = Shell("RegSvr32 /s " + "DCSSync.ocx")
If Result = 0 Then
Unload frmMessage
frmMessage.lblMsg = OldName & "注册失败!"
frmMessage.Show
End If
Else
If FileLen(OldName) <> OCXSIZE5 Then
Name (OldName) As (OldName & "." & Format(Date, "yyyymmdd") & Second(Time))
Ocx = LoadResData(105, "CUSTOM")
Open OldName For Binary As #1
For Counter = 0 To OCXSIZE5 - 1
Put #1, , Ocx(Counter)
Next Counter
Close #1
Result = Shell("RegSvr32 /s " + "DCSSync.ocx")
End If
End If
'106,Read_Valve.dll,(94208)
OldName = Fs.GetSpecialFolder(1) & "\Read_Valve.dll"
If Dir(OldName) = "" Then
Ocx = LoadResData(106, "CUSTOM")
Open OldName For Binary As #1
For Counter = 0 To OCXSIZE6 - 1
Put #1, , Ocx(Counter)
Next Counter
Close #1
Result = Shell("RegSvr32 /s " + "Read_Valve.dll")
If Result = 0 Then
Unload frmMessage
frmMessage.lblMsg = OldName & "注册失败!"
frmMessage.Show
End If
Else
If FileLen(OldName) <> OCXSIZE6 Then
Name (OldName) As (OldName & "." & Format(Date, "yyyymmdd") & Second(Time))
Ocx = LoadResData(106, "CUSTOM")
Open OldName For Binary As #1
For Counter = 0 To OCXSIZE6 - 1
Put #1, , Ocx(Counter)
Next Counter
Close #1
Result = Shell("RegSvr32 /s " + "Read_Valve.dll")
End If
End If
End Function
Public Function INI_Catenation()
Dim i As Long, j As Long, k As Long, Num As Long
Num = Val(ReadInIFiles("LIANSUO", "Number", "0", iniPaths + "Catenat.ini"))
On Error GoTo ErrHand
If Num = 0 Then
ReDim Preserve Catenation(0)
ReDim Preserve Catenation(i).InTag(0)
ReDim Preserve Catenation(i).OutTag(0)
Exit Function
End If
ReDim Preserve Catenation(0 To Num - 1)
For i = 0 To Num - 1
With Catenation(i)
.Nmae = Replace(ReadInIFiles("Catenation" & i, "Name", "连锁1", iniPaths + "Catenat.ini"), Chr(0), "")
j = Val(ReadInIFiles("Catenation" & i, "InNumber", "0", iniPaths + "Catenat.ini"))
ReDim Preserve .InTag(0 To j - 1)
For k = 0 To j - 1
.InTag(k) = Val(ReadInIFiles("Catenation" & i, "InTag" & k, "0", iniPaths + "Catenat.ini"))
Next
j = Val(ReadInIFiles("Catenation" & i, "OutNumber", "0", iniPaths + "Catenat.ini"))
ReDim Preserve .OutTag(0 To j - 1)
For k = 0 To j - 1
.OutTag(k) = Val(ReadInIFiles("Catenation" & i, "OutTag" & k, "0", iniPaths + "Catenat.ini"))
Next
.LCaten = ReadInIFiles("Catenation" & i, "LCaten", "False", iniPaths + "Catenat.ini")
.LLCaten = ReadInIFiles("Catenation" & i, "LLCaten", "False", iniPaths + "Catenat.ini")
.HCaten = ReadInIFiles("Catenation" & i, "HCaten", "False", iniPaths + "Catenat.ini")
.HHCaten = ReadInIFiles("Catenation" & i, "HHCaten", "False", iniPaths + "Catenat.ini")
.LowAlarm = Val(ReadInIFiles("Catenation" & i, "LowAlarm", "0", iniPaths + "Catenat.ini"))
.LLowAlarm = Val(ReadInIFiles("Catenation" & i, "LLowAlarm", "0", iniPaths + "Catenat.ini"))
.HighAlarm = Val(ReadInIFiles("Catenation" & i, "HighAlarm", "0", iniPaths + "Catenat.ini"))
.HHighAlarm = Val(ReadInIFiles("Catenation" & i, "HHighAlarm", "0", iniPaths + "Catenat.ini"))
.Calc = Val(ReadInIFiles("Catenation" & i, "Calc", "0", iniPaths + "Catenat.ini"))
End With
Next
Exit Function
ErrHand:
MsgBox "读取连锁配置失败,请重新配置……"
Err.Clear
End Function
Public Function AddWork(Description As String)
Dim i As Long
On Error Resume Next
Open datPaths & "\history\Work\" & Format(Date, "yyyy-mm-dd") & ".Rec" For Append As #1
Print #1, Format(Time, "hh:mm:ss") & " " & Description
Close #1
End Function
Public Function AddAlarm(Description As String)
Dim i As Long
On Error Resume Next
Open App.path & "\Dat\ErrRec.Rec" For Append As #1
Print #1, Format(Date, "yyyy-mm-dd") & "#" & Description ' 将报警信息写入文件。
Close #1
End Function
Public Function INI_Curve()
Dim i As Long, j As Long, k As Long, H As Long, dataNum As Long
'加载系统趋势属性信息
With Curve_Dl
.Name = Replace(ReadInIFiles("Curve", "Name", "趋势属性", iniPaths & "Stove.ini"), Chr(0), "")
.CurveNum = Val(ReadInIFiles("Curve", "CurveNum", "1", iniPaths & "Stove.ini"))
ReDim Preserve .Showhide(0 To StoveNumber - 1)
ReDim Preserve .DataAxisMax(0 To StoveNumber - 1)
ReDim Preserve .DataAxisMin(0 To StoveNumber - 1)
For i = 0 To StoveNumber - 1
.Showhide(i) = ReadInIFiles("Curve", "ShowHide" & i, "111111111111111111", iniPaths & "Stove.ini")
.DataAxisMax(i) = Val(ReadInIFiles("Curve", "DataAxisMax" & i, "1", iniPaths & "Stove.ini"))
.DataAxisMin(i) = Val(ReadInIFiles("Curve", "DataAxisMin" & i, "0", iniPaths & "Stove.ini"))
Next
For j = 0 To .CurveNum - 1
.CurveName(j) = Replace(ReadInIFiles("Curve", "CurveName" & j, "属性", iniPaths & "Stove.ini"), Chr(0), "")
.Color(j) = Val(ReadInIFiles("Curve", "Color" & j, "&HFF&", iniPaths & "Stove.ini"))
.Mag(j) = Val(ReadInIFiles("Curve", "Mag" & j, "1", iniPaths & "Stove.ini"))
.CurveUnit(j) = ReadInIFiles("Curve", "Unit" & j, "Kpa", iniPaths & "Stove.ini")
.HighScale(j) = Val(ReadInIFiles("Curve", "HighScale" & j, "1111", iniPaths & "Stove.ini"))
Next
End With
With Curve_Dl_R
.Name = Replace(ReadInIFiles("Curve", "Name", "趋势属性", iniPaths & "StoveRemote.ini"), Chr(0), "")
.CurveNum = Val(ReadInIFiles("Curve", "CurveNum", "1", iniPaths & "StoveRemote.ini"))
ReDim Preserve .Showhide(0 To StoveNumber + StoveNumberR - 1)
ReDim Preserve .DataAxisMax(0 To StoveNumber + StoveNumberR - 1)
ReDim Preserve .DataAxisMin(0 To StoveNumber + StoveNumberR - 1)
For i = 0 To StoveNumber - 1
.Showhide(i) = ReadInIFiles("Curve", "ShowHide" & i, "111111111111111111", iniPaths & "StoveRemote.ini")
.DataAxisMax(i) = Val(ReadInIFiles("Curve", "DataAxisMax" & i, "1", iniPaths & "StoveRemote.ini"))
.DataAxisMin(i) = Val(ReadInIFiles("Curve", "DataAxisMin" & i, "0", iniPaths & "StoveRemote.ini"))
Next
For j = 0 To .CurveNum - 1
.CurveName(j) = Replace(ReadInIFiles("Curve", "CurveName" & j, "属性", iniPaths & "StoveRemote.ini"), Chr(0), "")
.Color(j) = Val(ReadInIFiles("Curve", "Color" & j, "&HFF&", iniPaths & "StoveRemote.ini"))
.Mag(j) = Val(ReadInIFiles("Curve", "Mag" & j, "1", iniPaths & "StoveRemote.ini"))
.CurveUnit(j) = ReadInIFiles("Curve", "Unit" & j, "Kpa", iniPaths & "StoveRemote.ini")
.HighScale(j) = Val(ReadInIFiles("Curve", "HighScale" & j, "1111", iniPaths & "StoveRemote.ini"))
Next
End With
i = Val(ReadInIFiles("Curve", "WindowNumber", "1", iniPaths & "H.ini"))
ReDim Preserve Curve_H(i - 1)
ReDim Preserve blnMoveH(i - 1)
dataNum = 0
For k = 0 To i - 1
With Curve_H(k)
ReDim Preserve .DataAxisMax(k)
ReDim Preserve .DataAxisMin(k)
ReDim Preserve .Showhide(k)
.Name = Replace(ReadInIFiles("Curve", "Name" & k, "趋势属性", iniPaths & "H.ini"), Chr(0), "")
.CurveNum = Val(ReadInIFiles("Curve", "Number" & k, "1", iniPaths & "H.ini"))
.DataAxisMax(k) = Val(ReadInIFiles("Curve", "DataAxisMax" & k, "1", iniPaths & "H.ini"))
.DataAxisMin(k) = Val(ReadInIFiles("Curve", "DataAxisMin" & k, "0", iniPaths & "H.ini"))
.Showhide(k) = ReadInIFiles("Curve", "ShowHide" & k, "111111111111111111", iniPaths & "H.ini")
For j = 0 To .CurveNum - 1
.CurveData(j) = Val(ReadInIFiles("Curve", "CurveData" & j + dataNum, "1", iniPaths & "H.ini"))
.Color(j) = Val(ReadInIFiles("Curve", "Color" & j, "255", iniPaths & "H.ini"))
.Mag(j) = Val(ReadInIFiles("Curve", "Mag" & j + dataNum, "1", iniPaths & "H.ini"))
If j = 0 Then
.CurveName(j) = "回收"
.CurveUnit(j) = "S"
Else
H = InStr(1, Signal(.CurveData(j)).Name, " ", 1)
.CurveName(j) = Mid(Signal(.CurveData(j)).Name, 1, H)
H = InStr(1, Signal(.CurveData(j)).Unit, " ", 1)
.CurveUnit(j) = Mid(Signal(.CurveData(j)).Unit, 1, H)
End If
Next
dataNum = dataNum + Curve_H(k).CurveNum
' For j = 0 To .CurveNum - 1
' .CurveData(j) = Val(ReadInIFiles("Curve", "CurveData" & j + dataNum, "1", iniPaths & "H.ini"))
' .Color(j) = Val(ReadInIFiles("Curve", "Color" & j, "255", iniPaths & "H.ini"))
' .Mag(j) = Val(ReadInIFiles("Curve", "Mag" & j + dataNum, "1", iniPaths & "H.ini"))
' .CurveName(j) = Replace(Signal(.CurveData(j)).Name, " ", "")
' .CurveUnit(j) = Replace(Signal(.CurveData(j)).Unit, " ", "")
' Next
' dataNum = dataNum + Curve_H(k).CurveNum
End With
Next
i = Val(ReadInIFiles("Curve", "WindowNumber", "1", iniPaths & "Flux.ini"))
ReDim Preserve Curve_Flux(i - 1)
ReDim Preserve blnMoveFlux(i - 1)
dataNum = 0
For k = 0 To i - 1
With Curve_Flux(k)
ReDim Preserve .DataAxisMax(k)
ReDim Preserve .DataAxisMin(k)
ReDim Preserve .Showhide(i - 1)
.Name = Replace(ReadInIFiles("Curve", "Name" & k, "趋势属性", iniPaths & "Flux.ini"), Chr(0), "")
.CurveNum = Val(ReadInIFiles("Curve", "Number" & k, "1", iniPaths & "Flux.ini"))
.DataAxisMax(k) = Val(ReadInIFiles("Curve", "DataAxisMax" & k, "1", iniPaths & "Flux.ini"))
.DataAxisMin(k) = Val(ReadInIFiles("Curve", "DataAxisMin" & k, "0", iniPaths & "Flux.ini"))
.Showhide(k) = ReadInIFiles("Curve", "ShowHide" & k, "111111111111111111", iniPaths & "Flux.ini")
For j = 0 To .CurveNum - 1
.CurveData(j) = Val(ReadInIFiles("Curve", "CurveData" & j + dataNum, "1", iniPaths & "Flux.ini"))
.Color(j) = Val(ReadInIFiles("Curve", "Color" & j, "255", iniPaths & "Flux.ini"))
.Mag(j) = Val(ReadInIFiles("Curve", "Mag" & j + dataNum, "1", iniPaths & "Flux.ini"))
.CurveName(j) = Replace(Signal(.CurveData(j)).Name, " ", "")
.CurveUnit(j) = Replace(Signal(.CurveData(j)).Unit, " ", "")
Next
dataNum = dataNum + Curve_Flux(k).CurveNum
End With
Next
i = Val(ReadInIFiles("Curve", "WindowNumber", "1", iniPaths & "Temper.ini"))
ReDim Preserve Curve_Temper(i - 1)
ReDim Preserve blnMoveTemper(i - 1)
dataNum = 0
For k = 0 To i - 1
With Curve_Temper(k)
ReDim Preserve .DataAxisMax(k)
ReDim Preserve .DataAxisMin(k)
ReDim Preserve .Showhide(k)
.Name = Replace(ReadInIFiles("Curve", "Name" & k, "趋势属性", iniPaths & "Temper.ini"), Chr(0), "")
.CurveNum = Val(ReadInIFiles("Curve", "Number" & k, "1", iniPaths & "Temper.ini"))
.DataAxisMax(k) = Val(ReadInIFiles("Curve", "DataAxisMax" & k, "1", iniPaths & "Temper.ini"))
.DataAxisMin(k) = Val(ReadInIFiles("Curve", "DataAxisMin" & k, "0", iniPaths & "Temper.ini"))
.Showhide(k) = ReadInIFiles("Curve", "ShowHide" & k, "111111111111111111", iniPaths & "Temper.ini")
For j = 0 To .CurveNum - 1
.CurveData(j) = Val(ReadInIFiles("Curve", "CurveData" & j + dataNum, "1", iniPaths & "Temper.ini"))
.Color(j) = Val(ReadInIFiles("Curve", "Color" & j, "&HFF&", iniPaths & "Temper.ini"))
.Mag(j) = Val(ReadInIFiles("Curve", "Mag" & j + dataNum, "1", iniPaths & "Temper.ini"))
.CurveName(j) = Replace(Signal(.CurveData(j)).Name, " ", "")
.CurveUnit(j) = Replace(Signal(.CurveData(j)).Unit, " ", "")
Next
dataNum = dataNum + Curve_Temper(k).CurveNum
End With
If k > 0 And SetCurrentDirectory(datPaths & "\history\WDhistory" & k) = 0 Then
MkDir datPaths & "\history\WDhistory" & k
End If
Next
i = Val(ReadInIFiles("Curve", "WindowNumber", "1", iniPaths & "Press.ini"))
ReDim Preserve Curve_Press(i - 1)
ReDim Preserve blnMovePress(i - 1)
dataNum = 0
For k = 0 To i - 1
With Curve_Press(k)
ReDim Preserve .DataAxisMax(k)
ReDim Preserve .DataAxisMin(k)
ReDim Preserve .Showhide(k)
.Name = Replace(ReadInIFiles("Curve", "Name" & k, "趋势属性", iniPaths & "Press.ini"), Chr(0), "")
.CurveNum = Val(ReadInIFiles("Curve", "Number" & k, "1", iniPaths & "Press.ini"))
.DataAxisMax(k) = Val(ReadInIFiles("Curve", "DataAxisMax" & k, "1", iniPaths & "Press.ini"))
.DataAxisMin(k) = Val(ReadInIFiles("Curve", "DataAxisMin" & k, "0", iniPaths & "Press.ini"))
.Showhide(k) = ReadInIFiles("Curve", "ShowHide" & k, "111111111111111111", iniPaths & "Press.ini")
For j = 0 To .CurveNum - 1
.CurveData(j) = Val(ReadInIFiles("Curve", "CurveData" & j + dataNum, "1", iniPaths & "Press.ini"))
.Color(j) = Val(ReadInIFiles("Curve", "Color" & j, "&HFF&", iniPaths & "Press.ini"))
.Mag(j) = Val(ReadInIFiles("Curve", "Mag" & j + dataNum, "1", iniPaths & "Press.ini"))
.CurveName(j) = Replace(Signal(.CurveData(j)).Name, " ", "")
.CurveUnit(j) = Replace(Signal(.CurveData(j)).Unit, " ", "")
Next
dataNum = dataNum + Curve_Press(k).CurveNum
End With
If k > 0 And SetCurrentDirectory(datPaths & "\history\YLhistory" & k) = 0 Then
MkDir datPaths & "\history\YLhistory" & k
End If
Next
i = Val(ReadInIFiles("Curve", "WindowNumber", "1", iniPaths & "Other.ini"))
ReDim Preserve Curve_Other(i - 1)
ReDim Preserve blnMoveOther(i - 1)
dataNum = 0
For k = 0 To i - 1
With Curve_Other(k)
ReDim Preserve .DataAxisMax(k)
ReDim Preserve .DataAxisMin(k)
ReDim Preserve .Showhide(k)
.Name = Replace(ReadInIFiles("Curve", "Name" & k, "趋势属性", iniPaths & "Other.ini"), Chr(0), "")
.CurveNum = Val(ReadInIFiles("Curve", "Number" & k, "1", iniPaths & "Other.ini"))
.DataAxisMax(k) = Val(ReadInIFiles("Curve", "DataAxisMax" & k, "1", iniPaths & "Other.ini"))
.DataAxisMin(k) = Val(ReadInIFiles("Curve", "DataAxisMin" & k, "0", iniPaths & "Other.ini"))
.Showhide(k) = ReadInIFiles("Curve", "ShowHide" & k, "111111111111111111", iniPaths & "Other.ini")
For j = 0 To .CurveNum - 1
.CurveData(j) = Val(ReadInIFiles("Curve", "CurveData" & j + dataNum, "1", iniPaths & "Other.ini"))
.Color(j) = Val(ReadInIFiles("Curve", "Color" & j, "&HFF&", iniPaths & "Other.ini"))
.Mag(j) = Val(ReadInIFiles("Curve", "Mag" & j + dataNum, "1", iniPaths & "Other.ini"))
.CurveName(j) = Replace(Signal(.CurveData(j)).Name, " ", "")
.CurveUnit(j) = Replace(Signal(.CurveData(j)).Unit, " ", "")
Next
dataNum = dataNum + Curve_Other(k).CurveNum
End With
If k > 0 And SetCurrentDirectory(datPaths & "\history\YWhistory" & k) = 0 Then
MkDir datPaths & "\history\YWhistory" & k
End If
Next
End Function
Public Function FormatV(ByVal Value As Double) As String
Dim i As Double
i = Abs(Value)
If i >= 1000 Then
FormatV = Format(Value, "0000")
ElseIf i >= 100 Then
FormatV = Format(Value, "000.0")
ElseIf i >= 10 Then
FormatV = Format(Value, "00.00")
ElseIf i >= 1 Then
FormatV = Format(Value, "0.00")
ElseIf i >= 0 Then
FormatV = Format(Value, "0.000")
End If
End Function
'公共函数申明
'函数名:LinkAndSendMessage
'参 数:String msg
'返回值:Long 0-发送失败 1-发送成功
'描 述:采用冷连接与安装在本机的DDE服务器建立连接并发送格式为字符串的数据
Public Function LinkAndSendMessage(ByVal msg As String) As Long
On Error GoTo HandleErr
Dim i As Long
With frmMain.txtSend
.LinkMode = 0
.LinkTopic = "DDEserver|DDE_Server"
.LinkMode = 2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -