51305392-100
51305392-100系統參數主畫面如下圖所示:
圖二
數據讀取子程序:
Public Function GetData(ByVal StartAddress As String, ByVal GetBytes As Integer, ByVal Hex_Bytes As String) As String
MSComm1.InputLen = GetBytes * 2 + 4
MSComm1.Output = STX + CMD_Read + StartAddress + Hex_Bytes + ETX + GetSumChk(CMD_Read + StartAddress + Hex_Bytes + ETX)
‘傳送數據組成:起始符+命令+首地址+數據位+結束符+和檢驗碼
GetData = MSComm1.Input
MSComm1.InBufferCount = 0
MSComm1.InputLen = 0
End Function
如需讀取數據,通過調用GetData子程序。
參數設置程序可參考讀取子程序,只是改變命令而已。
Access97數據庫中包含三個表單,包括參數表、記錄表、報警記錄表。
通過如下子程序是將實際稱量值(記錄表)更新到數據庫:
Private Sub SaveData()
Dim i As Integer
Dim valid As Boolean
On Error Resume Next
valid = True
Data1.Recordset.AddNew
Data1.Recordset.Fields("dtime") = TimeSerial(OnHour, OnMinute, OnSecond)
Data1.Recordset.Fields("systime") = Time ‘系統時間
Data1.Recordset.Fields("get_xl") = LF(1) ‘小料當前稱量值
Data1.Recordset.Fields("get_fjs") = LF(2) ‘方解石當前稱量值
Data1.Recordset.Fields("get_cs") = LF(3) ‘長石當前稱量值
Data1.Recordset.Fields("get_sys") = LF(4) ‘石英砂當前稱量值
Data1.Recordset.Fields("get_cj") = LF(5) ‘純堿當前稱量值
On Error Resume Next
Data1.Recordset.Update ‘更新數據庫記錄
Data1.Recordset.MovePrevious
End Sub
程序中,LF(i)變量對應為圖二系統參數表單中實稱值。
保存參數子程序只是對數據庫操作,程序結構可參考以上子程序。
上位機與PLC通信質量的好壞,對系統的安全可靠運行影響*,因此,編寫程序時,除了在兩者之間的通信協議上保持*和采取相應的容錯技術外,還要考慮系統的整體容錯技術,防止系統的不正常。