PLC200 MODBUS主站库指令单个通讯报错,错误代码为3,但是再增加一个msg指令库让其轮询,却是正常了

图一是单个库指令(一个CTRL和一个MSG)监控运行时,报错为3,不能通讯,但是在增加了一个轮询时(一个CTRL和两个个MSG,如图二三四),就正常了,请问什么原因,初始化也都复位了。

问题补充:
已经知道什么问题了,我加了一个定时器,不断的给msg发脉冲就可以了,或者加一个sm0.5,不过这样不知道是否会影响效率,还有没有更好的方法??

图片说明:

PLC200 MODBUS主站库指令单个通讯报错,错误代码为3,但是再增加一个msg指令库让其轮询,却是正常了    PLC200 MODBUS主站库指令单个通讯报错,错误代码为3,但是再增加一个msg指令库让其轮询,却是正常了    PLC200 MODBUS主站库指令单个通讯报错,错误代码为3,但是再增加一个msg指令库让其轮询,却是正常了    PLC200 MODBUS主站库指令单个通讯报错,错误代码为3,但是再增加一个msg指令库让其轮询,却是正常了   

最佳答案

这可能是因为,一个的话就不存在轮,也就没有机会off。所以一直工作就等于一直不工作。你检查一下有没有这样的现象?
一个的话,完成了,你要给一个空闲的扫描周期,然后再发出通讯指令。起码first端口要有上升缘。假如M0.3一直都是通的,也就没有通讯了。不过这种情况不是报3的。看看别的情况有没有?你的程序不齐,不能判断。
最好的效率就是done之后就间隔一个扫描周期。

提问者对于答案的评价:
是的,必须不断的发脉冲,不能一直导通,想要快,只能把定时器的时间调小一点,还有一个方法,就是再添加一个无作用的msg,形成轮询,用第二个msg的完成位去置位第一个的开始

最佳答案作者回复:
干嘛要没用?要真的没事做,第二个也可以一样做第一个的事情啊。这种方式完全没有任何副作用。如果不想做第二个msg,你用一个扫描周期的间隔(例如一个下降缘)过渡也可以啊。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc371049.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午4:42
下一篇 2021年7月5日 下午4:43

相关推荐

发表回复

登录后才能评论