⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mdlmain.bas

📁 基于化工行业造气岗位的自动化监控系统
💻 BAS
📖 第 1 页 / 共 4 页
字号:
    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 + -