Private Sub cmdSend_Click()
On Err GoTo ErrProc
Dim SendStr(11) As Byte
Dim RcvStr() As Byte
SendStr(0) = 0
SendStr(1) = 0
SendStr(2) = 0
SendStr(3) = 0
SendStr(4) = 0
SendStr(5) = 6
SendStr(6) = 1
SendStr(7) = &H1
SendStr(8) = 3
SendStr(9) = &HE8
SendStr(10) = 0
SendStr(11) = &HA
Dim aStr As String
Dim i As Integer
For i = 0 To 11
aStr = aStr & Chr(SendStr(i))
Next
Winsock1.SendData aStr
Exit Sub
ErrProc:
MsgBox "傳輸資料失敗", vbCritical, "網路傳輸"
End Sub
這段代碼我想實作的是:
Tx:465-50 5A 00 00 00 06 01 01 03 E8 00 0A
Rx:466-50 5A 00 00 00 05 01 01 02 01 00
Tx:467-50 5B 00 00 00 06 01 01 03 E8 00 0A
Rx:468-50 5B 00 00 00 05 01 01 02 01 00
Tx:469-50 5C 00 00 00 06 01 01 03 E8 00 0A
Rx:470-50 5C 00 00 00 05 01 01 02 01 00
可是我用moabus slave 測驗出來錯誤:
000290-Rx:00 00 00 00 00 06 01 01 03 3F 00 0A
000291-Tx:00 00 00 00 00 03 01 81 02
請高手指點一下
uj5u.com熱心網友回復:
Modbus協議的開頭兩個位元組是序列號,目測你從Slave這端抓到的資料包來看,你封裝資料發到Slave的序列號就00 00,如果你用的Modbus/TCP,建議你用Wireshark抓包看一下真實的網路行為。希望有幫助~uj5u.com熱心網友回復:
拿VB的代碼來CB問轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/50658.html
標籤:網絡及通訊開發
上一篇:c++builder XE8開發的程式在WIN10系統的觸摸屏上,一用放大縮小的手勢進行操作,立馬彈出致命錯誤框
