Smart200和10台变频器通讯 轮询的方法是使用MBUS_MSG的Done位触发下一个MBUS_MSG 指令 并断开本次MBUS_MSG的EN管脚和Fisrt管脚 在使用本程序和3台变频器通讯的时候很正常,但是使用这样的轮询方法变频器增加到10台的时候,程序跑所有的MBUS_MSG指令后,DONE全部置位1,导致轮询没有跑起来。错误位管脚也没有报错。在我的印象中MBUS_MSG发送报文完成,DONE位应该自动复位,恳请大神分析下原因
图片说明:
钻石用户推荐最佳答案
1、程序一定是下面链接中的结构
Modbus RTU 主站 (最下面有MODBUS RTU 轮循实例)
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/communication/serial_port/modbus/Master/Master.htm
库存储区分配一定不能与程序中已用的存储区有任何重叠。
2、
通讯线路长吗?接线规范吗?通讯线路越长,适当降低波特率
通讯线路的连接,千万不要接成星形的,接成总线型结构、手拉手的连接。
使用专用的屏蔽双绞线,屏蔽层多点接地。
https://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/communication/Port/Connect.htm
3、用DONE 的上升沿捕捉一下Error,对照资料看一下代码的含义。
4、
S7-200 SMART Modbus RTU通信常见问题
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/020.html
提问者对于答案的评价:
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc349074.html