51305392-100
51305392-100系統(tǒng)參數(shù)主畫面如下圖所示:
圖二
數(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ù)位+結(jié)束符+和檢驗(yàn)碼
GetData = MSComm1.Input
MSComm1.InBufferCount = 0
MSComm1.InputLen = 0
End Function
如需讀取數(shù)據(jù),通過調(diào)用GetData子程序。
參數(shù)設(shè)置程序可參考讀取子程序,只是改變命令而已。
Access97數(shù)據(jù)庫中包含三個(gè)表單,包括參數(shù)表、記錄表、報(bào)警記錄表。
通過如下子程序是將實(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)時(shí)間
Data1.Recordset.Fields("get_xl") = LF(1) ‘小料當(dāng)前稱量值
Data1.Recordset.Fields("get_fjs") = LF(2) ‘方解石當(dāng)前稱量值
Data1.Recordset.Fields("get_cs") = LF(3) ‘長石當(dāng)前稱量值
Data1.Recordset.Fields("get_sys") = LF(4) ‘石英砂當(dāng)前稱量值
Data1.Recordset.Fields("get_cj") = LF(5) ‘純堿當(dāng)前稱量值
On Error Resume Next
Data1.Recordset.Update ‘更新數(shù)據(jù)庫記錄
Data1.Recordset.MovePrevious
End Sub
程序中,LF(i)變量對應(yīng)為圖二系統(tǒng)參數(shù)表單中實(shí)稱值。
保存參數(shù)子程序只是對數(shù)據(jù)庫操作,程序結(jié)構(gòu)可參考以上子程序。
上位機(jī)與PLC通信質(zhì)量的好壞,對系統(tǒng)的安全可靠運(yùn)行影響*,因此,編寫程序時(shí),除了在兩者之間的通信協(xié)議上保持*和采取相應(yīng)的容錯(cuò)技術(shù)外,還要考慮系統(tǒng)的整體容錯(cuò)技術(shù),防止系統(tǒng)的不正常。
























延川县|
屏东市|
霍城县|
育儿|
铜川市|
枣强县|
丰都县|
若尔盖县|
津南区|
青田县|
井研县|
嘉荫县|
平和县|
南丰县|
平乐县|
盐亭县|
甘德县|
台南县|
外汇|
库伦旗|
西宁市|
府谷县|
景泰县|
夏河县|
资溪县|
迭部县|
临沭县|
唐河县|
连云港市|
客服|
张掖市|
兰溪市|
永济市|
桃园县|
台北市|
古蔺县|
格尔木市|
凌源市|
富平县|
平定县|
内乡县|