modbus TCP

weixin_39789818 2017-10-17 04:51:09
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
请高手指点一下
...全文
559 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
华山沦贱 2018-01-05
  • 打赏
  • 举报
回复
拿VB的代码来CB问
RelaxChenL 2017-11-17
  • 打赏
  • 举报
回复
Modbus协议的开头两个字节是序列号,目测你从Slave这端抓到的数据包来看,你封装数据发到Slave的序列号就00 00,如果你用的Modbus/TCP,建议你用Wireshark抓包看一下真实的网络行为。希望有帮助~

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧