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

📄 frm五气分析仪浓度监视.frm

📁 FLA-502控制、标定、分析用
💻 FRM
📖 第 1 页 / 共 3 页
字号:
   End
End
Attribute VB_Name = "frm五气分析仪浓度监视"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'************************************* ----5气分析仪浓度监视 *******************************************************
'* 以数字和曲线的方式监视所有测量值                                                                       *
'*                                                                                                              *
'****************************************************************************************************************
'
Option Explicit
'定义picture1的各常量及入口参数
Const pt1fs = 10 * 1.28   '图象1字大小
Const pt1sw = 1500    '图象1横坐标分度--X
Const pt1sh = 1490    '图象1纵坐标分度--Y
Const Dot = 120
Dim DrawX, Index As Integer
Dim PV_Y1(10), PV_Y2(10) As Single
Dim max(10) As Single         '量程上限
Dim min(10) As Single         '量程下限
Dim Gas_PV(10) As Single
Dim i, J, KK As Long
Dim Result(1 To 20) As Single
Dim subResult(1 To 3) As Single
Dim ExitForm As Boolean
Const SW = 100
Const SH = 100

Dim m_Status As String

Private Sub checkAnalysisCmdButton_Click() '尾气分析
    Call AllCommandDisenable
    Call CheckAnalysis
    Call AllCommandEnable
End Sub

Private Sub Command1_Click() '返 回
    Timer1.Enabled = False
    ExitForm = True
    Unload Me
    Set frm五气分析仪浓度监视 = Nothing
End Sub

Private Sub Command2_Click() '读数
    Call DoCommand(&H4&, "抽管道气!")
    Call AllCommandDisenable
    Command5.Enabled = True
    Command1.Enabled = False
    Timer1.Enabled = True
End Sub

Private Sub Command3_Click() '检漏
    Timer1.Enabled = False
    Call AllCommandDisenable
    Call Leak
    Call AllCommandEnable
End Sub

Private Sub Command4_Click() '清零
    Timer1.Enabled = False
    Call AllCommandDisenable
    Call Zero
    Call AllCommandEnable
End Sub

Private Sub Command5_Click() 'Clear No Flag
    Timer1.Enabled = False
    If Analyzer.排气分析仪 = "NHA-503" Then
        If SendCommand(14) = OP_SUCCESSED Then
            Lb(1).Caption = "Clear No Flag!"
            Lb(1).Refresh
            Lb(0).Caption = ""
            DoEvents
        Else
            Lb(0).Caption = "命令无效!"
        End If
    End If
    Call DoCommand(&H6&, "清洗停止!")
    Call AllCommandEnable

End Sub

Private Sub Command7_Click() '管道清洗
    Timer1.Enabled = False
    Call DoCommand(&H4&, "管道清洗!")
End Sub

Private Sub Command8_Click() '清洗停止
    Timer1.Enabled = False
    Call DoCommand(&H6&, "清洗停止!")
End Sub

Private Sub Form_Load()
    Dim J As Byte
    ExitForm = False
    Picture1.AutoRedraw = True
    Picture1.AutoSize = True
    Picture1.ScaleWidth = SW
    Picture1.ScaleHeight = SH
    Picture1.FontSize = pt1fs
    Label1(0).BackColor = QBColor(1)
    Label1(1).BackColor = QBColor(2)
    Label1(2).BackColor = QBColor(3)
    Label1(3).BackColor = QBColor(4)
    Label1(8).BackColor = QBColor(5)
    Call DrawCord
    max(0) = 10000 'HC
    max(1) = 10 'CO
    max(2) = 25 'CO2
    max(3) = 25 'O2
    max(4) = 5000 'NO
    min(0) = 0
    min(1) = 0
    min(2) = 0
    min(3) = 0
    min(4) = 0
    For J = 0 To 4
        PV_Y2(J) = SH
    Next J
    Timer1.Enabled = False
    Timer1.Interval = 500
    'Call SetDeviceIndependentWindow(Me)
'    Call 刷新hyLimit数据
'    Call 刷新设备对应的串口数据
    Analyzer.分析仪通讯端口检测
End Sub
Private Sub CheckAnalysis()
    Dim CHAir As Single
    Dim CHPipeAir As Single
    Dim i As Byte
    Call DoCommand(&H3&, "抽空气!")
    Call Delay01(10)
    Call DoCommand(&H4&, "抽管道气!")
    KK = 0
    m_Status = "取数"
    Timer2.Enabled = True
    Call Delay01(2)
    Do
        DoEvents
        If KK > 1 Then
            If Analyzer.HC > SysPara.上车前环境气HC限值 Or Analyzer.CO > SysPara.上车前环境气CO限值 Or Analyzer.NO > SysPara.上车前环境气NOx限值 Then
                Call DoCommand(&H3&, "抽空气!")
                Lb(0).Caption = "空气残留超标,请做好通风!"
                If KK > 80 Then
                    Lb(0).Caption = "空气残留检测失败,请人工清洗!"
                    Timer2.Enabled = False
                    Exit Do
                End If
            Else
                Lb(0).Caption = "空气环境合格!"
                Timer2.Enabled = False
                Exit Do
            End If
        End If
    Loop
    Call DoCommand(&H6&, "停止管道抽\吸气!")

End Sub

Private Sub LoadData()
    Dim J As Long
    Dim sumTemp As Integer
    Dim resultError As Boolean
    Call Analyzer.LoadDataCmd
    Lb(0) = Analyzer.StatusEcho
    If Lb(0) = "" Then
        Lb(0).Caption = "正在读取排气浓度!"
        Lb(1).Caption = "操作成功!"
        Text1(0) = Analyzer.HC
        Text1(1) = Analyzer.CO
        Text1(2) = Analyzer.CO2
        Text1(3) = Analyzer.O2
        Text1(4) = Analyzer.NO
        Text1(5) = Analyzer.rpm
        Text1(6) = Analyzer.OilyTemp
        Text1(7) = Analyzer.Flux
        
        Gas_PV(0) = Analyzer.HC
        Gas_PV(1) = Analyzer.CO
        Gas_PV(2) = Analyzer.CO2
        Gas_PV(3) = Analyzer.O2
        Gas_PV(4) = Analyzer.NO
        Call DrawPV
    Else
        Lb(1).Caption = "操作失败!"
    End If
End Sub
Private Sub LoadSubData()
    Dim J As Long
    Call Analyzer.LoadSubDataCmd
    If Analyzer.StatusEcho = "" Then
        Lb(0).Caption = "正在进行环境(温、压、湿)测量!"
        Text1(8) = Analyzer.Temperature
        Text1(9) = Analyzer.mPa
        Text1(10) = Analyzer.Humidity
    Else
        Lb(1).Caption = "操作失败!"
    End If
End Sub




Private Sub DrawCord()
    frm五气分析仪浓度监视.Picture1.Cls
    '画趋势图的X轴分度线
    frm五气分析仪浓度监视.Picture1.DrawStyle = 2
    frm五气分析仪浓度监视.Picture1.DrawWidth = 1
    For i = 0 To 9
        frm五气分析仪浓度监视.Picture1.Line (i * SW / 10, SH * 9.99 / 10)-(i * SW / 10, 0), vbBlack
    Next i
    '画Y坐标的分度线
    For i = 0 To 11
      frm五气分析仪浓度监视.Picture1.Line (0, i * SH / 11)-(SW * 9.99 / 10, i * SH / 11), vbBlack
    Next i
End Sub

Private Sub DrawPV()
     If ExitForm Then Exit Sub
     Text2.Text = Time$
     frm五气分析仪浓度监视.Picture1.DrawStyle = 0
     frm五气分析仪浓度监视.Picture1.DrawWidth = 2
      
     DrawX = DrawX + 1
     If DrawX > Dot Then
        DrawX = 0
        Call DrawCord
     End If
     For Index = 0 To 4
         PV_Y1(Index) = PV_Y2(Index)
         PV_Y2(Index) = (max(Index) * 1.1 - Gas_PV(Index)) * SH / (max(Index) * 1.1 - min(Index))
       
         Picture1.Line (DrawX * SW / Dot, PV_Y2(Index))- _
                       ((DrawX - 1) * SW / Dot, PV_Y1(Index)), QBColor(Index + 1)
     Next Index
End Sub

Private Sub DoCommand(cmd As Byte, iDisplay As String)
    Call AllCommandDisenable
    If SendCommand(cmd) = OP_SUCCESSED Then
        Lb(1) = iDisplay
        Lb(1).Refresh
        Lb(0).Caption = ""
        DoEvents
    Else
        Lb(0).Caption = "命令无效!"
    End If
    Call AllCommandEnable
End Sub

Private Sub Leak() '
    If SendCommand(7) = OP_SUCCESSED Then
        Lb(1).Caption = "分析仪检漏!"
        Lb(1).Refresh
        KK = 0
        m_Status = "检漏"
        Timer2.Enabled = True
        DoEvents
    Else
        Lb(0).Caption = "命令无效!"
        Exit Sub
    End If

    Do Until KK > 80
        DoEvents
        If KK > 1 Then
            Lb(0) = Analyzer.StatusEcho
            If Lb(0) = "" Then
                Select Case Analyzer.排气分析仪
                Case "NHA-503"
                    If returnBytes(1) = 0 Then
                        Lb(0).Caption = "无泄漏!"
                    Else
                        Lb(0).Caption = "有泄漏!"
                    End If
                Case "FLA-502"
                    Lb(0).Caption = "成功!"
                End Select
                Exit Do
            End If
        End If
    Loop
    If KK >= 80 Then
        Lb(0).Caption = "超时!"
    End If
    Timer2.Enabled = False
    Lb(1) = ""
End Sub

Private Sub Zero()
    If SendCommand(8) = OP_SUCCESSED Then
        Lb(1).Caption = "分析仪清零!"
        Lb(1).Refresh
        KK = 0
        m_Status = "清零"
        Timer2.Enabled = True
        DoEvents
    Else
        Lb(0).Caption = "命令无效!"
        Exit Sub
    End If
    Do Until KK > 80
        DoEvents
        If KK > 1 Then
            Lb(0) = Analyzer.StatusEcho
            If Lb(0) = "" Then
                Select Case Analyzer.排气分析仪
                Case "NHA-503"
                    If returnBytes(1) = 0 Then
                        Lb(0).Caption = "清零成功!"
                    Else
                        Lb(0).Caption = "清零失败!"
                    End If
                Case "FLA-502"
                    Lb(0).Caption = "成功!"
                End Select
                Exit Do
            End If
        End If
    Loop
    If KK >= 80 Then
        Lb(0).Caption = "超时!"
    End If
    Timer2.Enabled = False
    Lb(1) = ""
End Sub



Private Sub AllCommandEnable()
    Command3.Enabled = True
    Command4.Enabled = True
    Command7.Enabled = True
    Command8.Enabled = True
    Command2.Enabled = True
    Command5.Enabled = True
    Command1.Enabled = True
    checkAnalysisCmdButton.Enabled = True
End Sub

Private Sub AllCommandDisenable()
    Command3.Enabled = False
    Command4.Enabled = False
    Command7.Enabled = False
    Command8.Enabled = False
    Command2.Enabled = False
    Command5.Enabled = False
    checkAnalysisCmdButton.Enabled = False
End Sub

Private Sub Timer1_Timer()
    Call LoadSubData
    Call Delay01(2)
    Call LoadData
'    If commFailed = True Then
''        Timer1.Enabled = False
'        Exit Sub
'    End If
End Sub



Private Sub Timer2_Timer()
    KK = KK + 1
    Lb(1) = CStr(KK)
    Select Case m_Status
    Case "清零", "检漏"
        Analyzer.getStatus
    Case "取数"
        Analyzer.LoadDataCmd
    End Select
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -