签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
求助各位师傅200smart怎么进行高低字交换呢
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1700737&b_id=64&s_id=0&num=17
两个人要调换位置,你肯定知道怎么调。高低字节交换你是差哪里不明白?或许可能你是不知道一个字包含两个字节。你把这两个字节换个位就可以了。同理,一个双字又包含两个字……
用SWAP指令。
交换字节的话用SWAP指令,交换字的话用MOVE
用SWAP,多个字的高低字节对调很麻烦,要一个一个写。
仔细看下200smsrt系统手册吧
SWAP指令。直接使用此指令就能将高低字节交换。
看讨论多学习
很不错,我也学习学习
swap。。。。
高低字交换一般使用于与第三方通讯的数据处理,其它地方很少会用到。
早先,200不支持MODBUS通信协议,与第三方通讯一般只能采用自由口通讯,而自由口通讯一般是以字节为单位,就不存在高低字交换问题,一般只需要排列好字节的顺序就可以,使用MOV_B指令最多,也不会使用到SWAP指令。
后来200支持MODBUS通信协议,smart一开始就支持,而MODBUS通信协议是以字节单位。西门子MODBUS库已经处理了字的字节地址顺序问题,用户就不必再做字节交换。
但对应双字数据,用户必须做高低字交换处理。在这种使用库的情况下,不能使用SWAP指令来处理双字数据,一般使用MOV_W
如果你能打开由MODBUS库生成的若干个子程序,你会查找到它使用了很多SAWP指令来处理字的两个字节地址顺序。这样,如果我们再使用SWAP来处理双字的两个字地址顺序那就会产生错误,必须使用MOV_W指令才对。
用三条MOV_W指令吧
MOV比较直接点
MOV_W交换
跟着学习一下。系统手册要仔细看看,真的比什么书都好使。
MOV吧,最直接
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录