modbus 通讯数据不一致问题

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

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

最佳答案

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

提问者对于答案的评价:

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc224172.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 上午12:08
下一篇 2018年12月1日 上午12:08

相关推荐