恭喜,你发布的帖子
发布于 2021-01-07 08:55:12
4楼
1、170行的程序 插到155和154行的中间即#stateResetPosOld:=#resetPos会在#FB_STATE_POSITION的case中执行,从目前程序的状态分析,按照您的思路,程序也可以正常执行,但如果程序处于其他case时请求#resetPos,会造成#stateResetPosOld:=#resetPos无法成功执行,还是建议放在case语句外执行,较为稳妥。
2、你说的#instMcMoveAbsolute.Done没有输出,而绝对值定位的程序(131-141)正常按逻辑执行是不可能的,尽管其也满足条件,PLC也正常扫描;为什么#instMcMoveAbsolute.Done没有输出,说明定位指令报错了,既然报错了,轴报错了,不进行复位,轴会动作吗?即使下面的绝对值定位的程序(131-141)再次触发#instMcMoveAbsolute.Execute也是无法完成轴的动作的,定位指令报错,就会执行#stateErrorAutoCleared,所以不会出现您说的情况。
3、#startPos不能是上升沿,多次重复定位是通过执行#instMcMoveAbsolute.Execute=TRUE实现的,如果#startPos是上升沿,则在完成第一次定位后,无法启动第二次、第三次定位。
请填写推广理由:
分享
只看
楼主