赞
踩

我们在进行MODBUS通信轮询时,若遇到轮询卡死时,如何重新开始轮询,具体可以参考以下内容:
如下图所示,正常轮询时,轮询的各个标志位都是不断变化的,M10.0—》M10.1—》M10.2


换句话说,MB10的数值是不断变化的,我们可以通过类似心跳的方式来检测MB10的值在规定时间内是否是变化的,如果超过规定时间仍未发生变化,则判断为轮询卡死,需要重启轮询,
如下图所示,其中VB200存储的是MB10上一次的值,比较MB10和VB200的值,当二者相等时,则激活T37定时器开始计时(这里设置定时时间为3S),若超过3S二者仍相等,则T37为ON,

当T37为ON时,在其上升沿,复位掉所有的轮询标志位,并置位M10.0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。