当前位置: 主页 > PLC控制

modbus 通讯数据不一致问题

PLC是西门子暖通专用pol,通过MODBUStcp与触摸屏通讯在显示浮点数没有任何问题,同一个寄存器在通过modbusRTu通讯协议,通过宏电dtu模块,通过gprs发给上位机,上位机用的是亚控kingscada,浮点数出现不一致的问题。例如,寄存器中为10000.0,上位机就是9960.0。通过串口工具在本地读这个寄存器,然后通过转换浮点数的小软件,确实是9960.0。数越大越明显。各位,这是为什么呢?有没有别的办法。愁死我了!

问题补充:
2个字节显示的浮点数。现在本地我用modscan工具监视,通过modbuSTcp到触摸屏和通过modbusrtu到宏电的数据是一致的,只是亚控kingscada解析后出现不一致问题。已经打算用整数传送这个数了。看看大家还有别的建议吗?

最佳答案

似乎是数据精度问题。
你的浮点数用的是2个字节表示?还是4个字节表示的?
如果是4个字节表示,只要不再次进行数据计算,应该不会出太大的问题;
2个字节表示,即使是显示用,就有明显的差别。

提问者对于答案的评价:

  • 关注微信

猜你喜欢

微信公众号