找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
1、能读取,程序通讯功能上差不多是对的。
2、是用定时做的还是利用DONE位来循环读取的?
建议用 DONE 位做。
Modbus RTU 主站 (最下面有MODBUS RTU 轮循实例)
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/communication/serial_port/modbus/Master/Master.htm
3、在程序中用DONE的沿捕捉错误代码,查一下有没有错误代码。看一下有没有偶尔非0的错误码
4、通讯线路上有多少MODBUS RTU 从站?从站多了轮循确实是有延时的。
5、通讯线路不是太长,布线规范,系统接地良好,条件合适的话提高一下通讯双方的波特率。
6、适当调整一下主站初始化指令的延时时间,再看看效果。
S7-200 SMART Modbus RTU通信常见问题
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/020.html
补充:
程序结构是完整的,最后一个读完成位M6.2,直接做为下一个轮循的开始,不要再增加一个置位 M6.3,按这个思路调整一下。
MODBUS RTU通信_S7-200 SMART:
http://www.ad.siemens.com.cn/productportal/prods/s7-200-smart-portal/200smarttop/smartsms/020.html
Modbus RTU 主站:
补充问题回答:
看你程序轮训是用Done位来触发下一个通讯程序,而且你通讯轮训也就两个,不会太慢才对,除非你从站通讯反馈很慢。你通讯轮训这么慢有报错提示吗?
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!