?? 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 + -