時間:2008-11-18 13:24:00來源:dujing


圖二[/align]
數(shù)據(jù)讀取子程序:
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)
‘傳送數(shù)據(jù)組成:起始符+命令+首地址+數(shù)據(jù)位+結束符+和檢驗碼
GetData = MSComm1.Input
MSComm1.InBufferCount = 0
MSComm1.InputLen = 0
End Function
如需讀取數(shù)據(jù),通過調(diào)用GetData子程序。
參數(shù)設置程序可參考讀取子程序,只是改變命令而已。
Access97數(shù)據(jù)庫中包含三個表單,包括參數(shù)表、記錄表、報警記錄表。
通過如下子程序是將實際稱量值(記錄表)更新到數(shù)據(jù)庫:
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 ‘系統(tǒng)時間
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 ‘更新數(shù)據(jù)庫記錄
Data1.Recordset.MovePrevious
End Sub
程序中,LF(i)變量對應為圖二系統(tǒng)參數(shù)表單中實稱值。
保存參數(shù)子程序只是對數(shù)據(jù)庫操作,程序結構可參考以上子程序。
上位機與PLC通信質(zhì)量的好壞,對系統(tǒng)的安全可靠運行影響極大,因此,編寫程序時,除了在兩者之間的通信協(xié)議上保持絕對一致和采取相應的容錯技術外,還要考慮系統(tǒng)的整體容錯技術,防止系統(tǒng)的不正常。
四、結束語
串行通信是目前計算機與其他設備之間通信廣泛采用的方式之一,傳送數(shù)據(jù)準確,程序穩(wěn)定運行是系統(tǒng)開發(fā)的主要目的。本設計中充分利用計算機和PLC的資源,在幾乎不增加設備開支的情況下成功的實現(xiàn)上位機與PLC之間的通信。標簽:
傳動網(wǎng)版權與免責聲明:凡本網(wǎng)注明[來源:傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權均為傳動網(wǎng)(connectcrack.com)獨家所有。如需轉載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉載使用時須注明來源“傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。
本網(wǎng)轉載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產(chǎn)品新聞
更多>500kN.m聯(lián)軸器扭矩剛度疲勞試驗系統(tǒng)
2025-11-10
2025-11-10
2025-11-07
2025-10-31
2025-10-22
2025-10-17