找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
1、我用200SMART作为485从站与上位机通讯,比如我用v100.0做启动按钮控制线圈(如图),那么我给上位机的MODBUS地址是多少?(假如我的保持寄存器起始地址是vb100)40001吗?
理解正确,但位的对应关系不要出错了。40001 的高字节的8位对应VB100,其低位字节对应VB101。
你程序中的 V100.0对应是 40001 从右到左从 0 位数起的位 8。
2、但是这是一个字,我只需要一个位,或者说我v100.5有其他用途,上位机写过来不影响v100.5的值吗?
影响。上位机要写从站的一个保持寄存器,一写就是16位。所以上位机是要影响到 V100.5 的。
避免上位机影响的方法:
第一种:程序逻辑中用其它的位来替换 V100.5。编译一下后,用交叉表可以很容易查到哪些位还没有被用到。
第二种:上位机用另外一个保持寄存器地址来与 PLC 通讯,比如 40002,然后用 V102.0 去控制 V100.0 的接通与断开。
2、我只需要一个位,或者说我v100.5有其他用途,上位机写过来不影响v100.5的值吗?
不管按BOOL位使用还是按字节使用、还是按字使用,MODBUS读写寄存器变量都是按字为单位,如果使用V100.5,按字使用的话将第一个字=8192即可
另外,还要考虑字的高低字节是否交换问题
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!