恭喜,你发布的帖子
发布于 2023-04-01 22:16:00
6楼
学员您好,
如果有错误会报错停机,使能位会为0,所以程序会跳入ELSE里面,把ACKError复位信号放到ELSE语句中是因为当前轴有错误,为了上升沿触发ACKError则必须将他复位一次
老师,我现在理解轴报错会使使能失效了,但是我再查看代码时,发现它的外层还有一层 IF
#instSinaPosVertical.AckError := FALSE;
#instSinaPosScrew.AckError := FALSE;
是在两个轴没有报错且有任意一轴未使能的时候才能被执行,这个代码我感觉是失效了
当有故障发生且能被复位时
IF #instSinaPosVertical.Error THEN // 垂直轴故障复位
#instSinaPosVertical.AckError := TRUE;
END_IF;
IF #instSinaPosScrew.Error THEN // 拧丝轴故障复位
#instSinaPosScrew.AckError := TRUE;
END_IF;
这段代码将其复位
复位以后,下一次扫描周期扫描到
#instSinaPosVertical.AckError := #reset;
#instSinaPosScrew.AckError := #reset;
将其置零, #reset 是输入管脚,平时应该是 FALSE 状态。
请填写推广理由:
分享
只看
楼主