s7-200smart modbus 轮询第一次正常,第二次改了一下别的参数就所有的mbus-msg同时开始轮询
问题补充:请问一下西门子modbus初始化把轮询复位的程序改怎么写,用什么条件去触发啊
图片说明:
你的话让人看不懂,什么叫同时轮询?
Modbus RTU 主站 (最下面有MODBUS RTU 轮循实例)
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/communication/serial_port/modbus/Master/Master.htm
注意链接中前面4个网络,以及第一次激发MSG的时机。这个程序是久经沙场的。
S7-200 SMART Modbus RTU通信常见问题
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/020.html
MSG报警6#,只能说明你在同一时刻触发2个以上的MSG,虽然,看似可能性非常小,你的逻辑还不够严谨。
可能的问题:
1)SM0.1加不加沿,结果是同样的。
2)没有理解ctrl指令的done位含义,网络3的程序段欠考虑,如果重复启动PLC时。
3)没有初始化触发MSG的M区域,如M12.2等,在网络1中同样复位它们。
补充问题回复:
我这里是指你在网络1中的程序段,复位M11.1开始的6个位,加上MSG指令的First管脚的所有M触发位,这样当plc程序下载程序后或者重新启动plc时,这些M会从你的逻辑点开始轮询了。
如:网络1
LD SM0.1
R M12.2, 10
程序里面写个初始化,把轮训位先复位 ,SM0.1复位所有参与轮训的控制位
注意时序的问题,上面给了很好的例子,如果不参照就自己从新编写,还是完成位的时序处理,其实实际还需考虑通讯错误问题
电话:13818569113 15721373211
邮箱:fushidianji@139.com
网址:http://www.jiansujiabc.com
地址:上海青浦区北青公路7171号111-112室