请教一下Dint的数据格式,为什么modbus传送转速给定时,高低字要交换啊?

西门子300的plc和第三方的变频器modbus通讯,变频器的转速给定变量是32位整数,我用plc里的MD4发过去,但是无论MD4定义为Dint还是Real格式,发过去的数据不对,需要高word和低word要相互交换,MW4传送给MW10,MW6传送给MW8,然后把MD8发过去,数据就对了。请问这是什么原因啊?Dint的数据格式是什么样的啊?

最佳答案

西门子PLC的数据结构和其它设备的数据结构不同,MD4 中,MW4是高字节,MW6为低字节,其它设备都是默认MW4位低字节,MW6为高字节。MODBUS通讯时,PLC先发送MW4到变频器,变频器会把这个数值当低位存在存储器中,PLC再发送MW6到变频器,变频器把这个数值当高位存在存储器中,就会出现这个情况。如果是用亚系的PLC,可能就不会出现这个情况!通讯的数据都是通过word、byte传送的,与DINT、real没有什么关系!

提问者对于答案的评价:
谢谢。你说亚系的PLC不会出现这个情况,就是欧美系列的,比如说西门子或AB的,都可能会有这个现象吗?

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月18日
下一篇 2017年6月18日

相关推荐