签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
smart200采用modbus通讯读取信捷伺服驱动器编码器反馈信号,写入到VB1000开始的双字地址内,直接查看VD1000的数据与实际反馈信号不一致,通过查阅资料得知需要使用MOV_W进行高低位转换,但是转换以后仍然对不上,不知是什么原因,还请各位大神不吝赐教!程序截图如下(伺服驱动器实际反馈值为112814):
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1769717&b_id=64&s_id=0&num=14
VD1100哪里来的数据,你要去找下。数据传输不能用P,否则不能更新。
vd1000高低字交换一下就行了。
高低位对调有专门的指令,你用那个指令试下。
你把你查看的那个资料能截个图吗?
现在这个数的视觉效果就是112814了。问题点是你要如何使用这个值,才得到这个结果。如果你是按照另一种用途去看这个结果,这个结果将会是723710。这个值最终是由程序使用的,而不是人看的。有些问题我也不是一下子想到怎么说出来。
你试试前前后后说多一点情况看看。你有没有怀疑自己的出发点可能会是错的?
楼主,你的程序修改一下就能读到正确的数据。将第二段的完成位+上升沿去掉,更换成SM0.0。
貌似没有问题啊
感谢各位大神的热心帮助,指出了程序中的错误,第二张截图中的程序确实不应该上升沿,我之前提供的状态表不全面,我重新截了一张图,这次实际的伺服驱动器反馈值为:122595
你这张图显示不就对了吗?
结果想得到122595,VW1000里边是2595;VW1002里边是12;换算成十进制VW1002对应120000
所以应先对VW1002里边的数值12做处理,然后再与VW1000相加,最后得到122595
使用高低位对调有专门的指令
自己用临时变量转一下,vw1000赋值给lw2,vw1002赋值给lw0,然后再把ld0输出。
朋友解决了吗
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录