你这个程序仍然是程序逻辑原因引起的,MSG报警6#主要原因是同一时刻有2条以上的指令有效触发。
下面那个MSG指令的First管脚为什么u调用沿触发,该MSG指令的First管脚只允许沿触发。
轮询原则是上一条MSG指令的done位,复位本MSG指令的触发,并置位下一条MSG指令,指令完成done位,复位本指令的触发,置位下一条或第一条MSG指令,如此循环。
补充问题回复:
你可能逻辑没有理顺。
第一条的MSG完成位done,复位自己的触发条件,置位下一条MSG,这样一直到最后一条MSG完成位done,复位自己的触发条件后,置位第一条MSG。
你这么是第2条MSG指令的完成位置位第一条MSG指令?这样除非你只有2条MSG指令。
轮询就是一环扣一环的过程。
第二条读指令增加上升沿触发试一下。
从你报错代码6来看,就是同一时间同时激活多条通讯指令。西门子modbus rtu通讯要求轮询,同一时间只能激活一条指令。你网络5里面M4.2后面要加一个上升沿。还有不知道你程序里面是否有M4.3接通复位M4.2的程序。如果没有也要加上。modbus rtu通讯编程就是再同一时间只能有一条指令接通。
参考下面链接资料
Modbus RTU通信:
https://www.ad.siemens.com.cn/productportal/prods/s7-200-smart-portal/200smarttop/smartsms/020.html
通信例程及视频:
Modbus RTU常见问题:
第五段程序MSG功能块 first管脚要加一个上升沿,M4.3一直置1复位也没用。电话:15721373211
邮箱:15721373211@139.com
网址:http://www.4006162020.net/
地址:上海青浦区北青公路7171号111-112室