参照论坛某大神,用MOVE_BLK_VARIANT做了个FB块做moudbus轮询程序。思路用的完成位与错误位做下次触发。
程序运行半个月就出现单个从站卡死现象,如图1
REQ没有用沿触发,BUSY一直是1,DONE与ERROR都没有置1。
按我的理解从站卡死3S后即使不报错误也应该轮寻下一站(Blocked_Proc_Timeout=3)
官方解释:当由于某些原因(如已发出主站请求,但在彻底完成该请求前停止调用主站功能块时),造成Done及Error均没有置1时,需要提供一个定时时间,在时间到达后置位,以便执行下一个功能块或轮询下一个站点。
时间到了什么置位?如果是DONE或ERROR吗 为什么图1都没有置位
无奈,找不到原因,可能REQ没有加上升沿,或者轮寻有问题,,只好加了段程序 单从站BUSY位置1超过5S,强制轮询下一站.