手把手教你用VB實現(xiàn)Modbus-RTU串行通訊工程實例_第1頁
手把手教你用VB實現(xiàn)Modbus-RTU串行通訊工程實例_第2頁
手把手教你用VB實現(xiàn)Modbus-RTU串行通訊工程實例_第3頁
手把手教你用VB實現(xiàn)Modbus-RTU串行通訊工程實例_第4頁
手把手教你用VB實現(xiàn)Modbus-RTU串行通訊工程實例_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、 式 -可編輯 -專業(yè)資料-用 實現(xiàn) RTU串行訊在一些應(yīng)用中可能需要使用諸如 VB 來進行上位機監(jiān)控程序的開發(fā) Modbus 協(xié)是這類應(yīng)用中首選的通訊協(xié)議;Modbus 協(xié)以其簡易用,在工業(yè)領(lǐng)域里已廣泛的為其他第三方設(shè)備所支持。這里對 B 和 Twi do PLC 間通訊進行說明。對于大部分應(yīng)用Twido PLC 作為從站,它不需要編制通訊程序,只要把通訊口的參數(shù)設(shè)置好即,例如下圖表示此 Twido 通編程口上位機連接,其站號地址為 2 ;特率、數(shù)據(jù)位、校驗、停止位和上位機設(shè) 置保持一致。VB 程通過利用 MSComm1 通訊初始化:控件很容易就能夠?qū)崿F(xiàn)。完整版學(xué)習(xí)資料分享- 式 -可編輯

2、-專業(yè)資料-MSComm1.Settings 9600,n,8,1MSComm1.CommPort = 1MSComm1.SThreshold = 0 MSComm1.PortOpen Then MSComm1.PortOpen = True2 CRC 校驗碼的計算方法如下函數(shù)可以得到字節(jié)數(shù)組變量 指向字符串的 校驗 碼。Function crc16_1(ByRef cmdstring()As Byte, ByVal As Integer)Dim data As IntegerDim As IntegerAddressreg_crc = &HFFFFFor i 0 To jAddressreg

3、_crc = Addressreg_crc Xor cmdstring(i) For j 0 To 7data = Addressreg_crc And &H1 ThenAddressreg_crc = Int(Addressreg_crc/ Addressreg_crc = Addressreg_crc And &H7FFF Addressreg_crc = Addressreg_crc Xor &HA001Else完整版學(xué)習(xí)資料分享- 式 -可編輯 -專業(yè)資料-Addressreg_crc Addressreg_crc Addressreg_crc = Addressreg_crc And

4、 &H7FFFEnd IfNext jNext iIfAddressreg_crc 0 ThenAddressreg_crc = Addressreg_crc End IfHiByte Addressreg_crc And &HFFLoByte (Addressreg_crc And &HFF00) / &H100 End Function3 讀多字的命令(本例是從 2 號讀MW10 Dim SendStr(7) As ByteDim ByteSendStr(0) = 2 從站號是 起始的 4 個):SendStr(1) = &H3多個字的命令代碼SendStr(2) = 0始地址高字節(jié)Sen

5、dStr(3) = 10 始地址低字SendStr(4) = &H0數(shù)據(jù)長度高字節(jié)完整版學(xué)習(xí)資料分享- 式 -可編輯 -專業(yè)資料-SendStr(5) = 4 數(shù)據(jù)長度低字Call SendStr(6) = HiByteSendStr(7) = LoByte 計命令發(fā)送后接5 + SendStr(5) * 個字節(jié)時產(chǎn)生中斷CmdLenth = 5 + SendStr(5) 2MSComm1.RThreshold = CmdLenthMSComm1.Output = SendStr送命令4 寫多字的命令(本例是寫 2 號%MW20 Dim As Byte起始的 3 個):k 6 6 個節(jié)ReDi

6、m k) 2站號是 &H10多個字的命令代碼 0 20始地址高字節(jié)起始地址低字節(jié) &H0 k / 2據(jù)長度高字節(jié)據(jù)長度低字節(jié) 字個完整版學(xué)習(xí)資料分享- 式 -可編輯 -專業(yè)資料- k據(jù)長度 字節(jié)的個數(shù) &H12寫的第 1 個的高字節(jié) &H34 寫的第 個的低字節(jié) &H56寫的第 2 個的高字節(jié)WriteStr(10)= &H78WriteStr(11)= &H9A的第 個的低字節(jié)的第 個的高字節(jié)WriteStr(12)= &HBC 的第 3 個的低字節(jié)Call crc16(WriteStr(), k) (k 2 - 1) * = HiByteWriteStr(10+ (k / 2 - 1) *

7、 2) LoByteMSComm1.InBufferCount = 0MSComm1.Output = WriteStr命令發(fā)送后接到8 個字節(jié)時中斷CmdLenth = MSComm1.RThreshold = CmdLenth5 通訊件中斷產(chǎn)生時的數(shù)據(jù)理: MSComm1_OnComm()Dim inx()As Byte完整版學(xué)習(xí)資料分享- 式 -可編輯 -專業(yè)資料-Select Case MSComm1.CommEventCase comEvReceive斷為接收事件MSComm1.InputLen = CmdLenth收數(shù)據(jù)的長度inx MSComm1.Input收數(shù)據(jù)MSComm1.InBufferCount =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論