📄 frm五气分析仪浓度监视.frm
字号:
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 + -