请教SMART做MODBUS TCP服务端问题

请教SMART做MODBUS TCP服务端问题,通讯都正常了,一个16位的数据传输没问题,但是32位浮点数的数据,客户端那边接收就不对了,是不是因为西门子数据的高低位导致的呀?需要怎么解决呢?

问题补充:
由于设备目前还在厂里调试未交客户,TCP的测试我是用的一块威纶触摸屏做的TCP连接另外也用了一个TCP调试软件测试的,触摸屏和软件显示的浮点数数据都不对。我感觉是要将smart里的浮点数数据2个字交换一下。因为原来用过一个RTU的模拟量采集模块,数据是0-65535,PLC里读到32767以上就不正常了,后来经过论坛师傅指导 交换了两个字的数据 正常了。

最佳答案

西门子的数据是高位低存,大概率与对方数据格式不相同。前后字交换。
循环移位双字它令,比如 ROL_DW 指令移位16 次可以交换高低字的位置。
SWAP 指令可以交换高低字节的位置。
使用上面的指令或其组合,试试
MODBUS TCP通信
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/055.html

提问者对于答案的评价:
嗯 确实是字高低位的关系,我现在将32位数据右移了16位 给他们对调了一下,触摸屏里读出的数据完全没问题了!~谢了~也谢谢大家的回答!~

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月30日 下午6:05
下一篇 2020年10月30日 下午6:05

相关推荐

发表回复

登录后才能评论