S7-1200中,DINT数据的高16位和低16位转换的问题

博图中,有没有将一个32位的DINT的高16和低16位字节交换的命令(不是SWAP指令,SWAP好像只支持word类型数据,而且看帮助是4个字节都交换了)。
用MOVE的方式,好像和STEP7里不太一样,如建立DB10.DBD0的DINT的数据,无法分别move到DBW0和DBW2中。
另外,从moudbus读取回来的数据是有符号32位和无符号32位,S7-1200中应该分别建立哪种数据类型?

最佳答案

300 400 里面有个双子循环移位指令,直接移位16位就可以了
可是我看看1200里面的循环移位只是支持word
还是得用SWAP,SWAP指令支持双字的,不过可能需要先双字交换,然后再字交换就行了
看指令说明如图

图片说明:

S7-1200中,DINT数据的高16位和低16位转换的问题  

提问者对于答案的评价:
看来我对SWAP的指令没有理解清楚。同样谢谢其他回答的朋友。

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月3日 上午11:49
下一篇 2017年6月3日 上午11:49

相关推荐