首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB Modbus TCP数据接收疑点

2013-01-09 
VB Modbus TCP数据接收疑问最近小弟在处理Modbus TCP通讯上遇到了问题,望各位老师帮忙解答。已知下位机用串

VB Modbus TCP数据接收疑问
最近小弟在处理Modbus TCP通讯上遇到了问题,望各位老师帮忙解答。
已知下位机用串口通讯,发送300个浮点数,功能码16;中间采用隔离网关,上位机采用Modbus TCP读取数据。由于原程序是别人做的,我想从上位机自己编写程序读取数据,但是未能成功。
两则Modbus TCP通讯报文如下:
Send:   00 00 00 00 00 06 01 03 00 01 00 01 (Slave:01,功能码03,从寄存器1读取1个数据,返回数据不对啊,求解)
Receive:00 00 00 00 00 CE 01 10 07 D1 00 C8 C3 68 4D D3 43 5E 26 25 C4 5C D6 D9 42 61 15 81 42 8C 23 D7 43 01 94 FE C4 95 46 A0 42 28 8D 50 42 C8 00 00 42 02 C5 A2 00 00 00 00 44 96 26 6F 43 26 72 B0 43 0F 1F 3B 42 4D C9 BA C5 13 2E A8 C5 96 3E 5E 42 BD 0D 50 42 02 D8 10 42 8C 34 39 41 EE 1A A0 41 92 F7 CF 41 B9 F7 CF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BF 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 8B 5C 29 40 A6 45 A2 00 00 00 00 00 00 00 00 00 00 00 00 

Send:   94 00 00 00 06 01 04 00 00 00 01  (使用ModbusPoll程序读取数据通讯报文,同样报错。Slave:01;功能码04)
Receive:55 94 00 00 00 CE 01 10 03 E9 00 C8 44 77 CE 35 43 A9 E8 93 C5 C5 8A 39 43 98 1A E1 C5 A2 82 D1 43 96 FD 91 C5 A7 B0 19 43 AF B5 3F C5 92 1E BE 43 AD 64 7B C5 A7 8E AA 43 0C 15 C3 C5 9E 10 54 43 8D C0 42 C5 A9 29 A0 43 FA 63 D7 C5 8C 3F 60 44 0B 47 8D C5 56 F6 E9 43 43 4E D9 C5 9F 68 6F 43 44 61 48 C5 6F 12 D1 44 29 D9 68 C5 5B 85 C3 43 B1 3E B8 C5 7E 26 14 44 12 80 F6 C5 96 FD 19 44 2D 8C 19 C5 5A 7E D5 44 0B 78 E5 C5 73 C0 00 44 43 DF DF C5 0A DD 2B 44 42 39 48 C5 30 E2 4E 44 2C DF 3B C5 79 C1 17 44 5C 8C 8B C4 CB EE C1 44 4C 20 B4 C5 09 EF 3F 44 4B 2F BE C5 3D 9B 0A 44 4E 6B 23 C4 EB 0A C9 44 5B 98 52 C4 EC 37 F0 44 5D 99 79 

根据Modbus TCP通讯协议,正常返回格式应该是:
00 00 00 00 00 07 06 03 04 xx xx xx xx


望各位老师予以解答,感激不尽。
[解决办法]
是否是你的通信命令格式不对?

[解决办法]
返回数据明显是错误的
串口通讯用的是RTU吧,那个和TCP的协议格式不一样,要查一下网关的协议转换情况
下位机的数据地址也要去查一下,一个数据包也发不了300个浮点数,通讯协议要去确认的

热点排行