基于CODESYS平台的库CAA_BehaviourModel.library之ETrig详解
输入上升沿开始动作,在动作完成或内部发生错误之前输入下降沿,输出值仅变化1个周期,在动作完成或发生错误之后输入下降沿,输出值保留到输入下降沿时。FUNCTION_BLOCK ETrig IMPLEMENTS IFBCommand
VAR_INPUT
xInExecute: BOOL;
END_VAR
VAR_OUTPUT
xOutDone: BOOL; //完成
xOutBusy: BOOL; //执行中
xOutError: BOOL; //出错
END_VAR
VAR
xPreviousExecute: BOOL; //上一周期xExecute的值
xPreviousAbortInProgress: BOOL; //上一周期xAbortInProgress的值
xAbortInProgress: BOOL; //中止处理中
iError: INT; //错误代码
END_VAR
IF NOT xAbortInProgress THEN //中止未请求
IF NOT xOutBusy THEN
IF NOT xInExecute AND xPreviousExecute THEN //下降沿复位输出
prvResetOutputs();
ELSIF xInExecute AND NOT xPreviousExecute THEN //上升沿开始动作
xOutBusy:= TRUE;
xPreviousExecute:= TRUE;
prvStart();
END_IF;
END_IF;
IF xOutBusy THEN
prvCyclicAction();
IF xOutDone THEN
xOutBusy:= FALSE;
END_IF;
END_IF;
IF xOutBusy THEN
IF iError <> 0 AND NOT xPreviousAbortInProgress THEN //执行中出现错误
xAbortInProgress:= TRUE;
END_IF;
END_IF;
END_IF;
IF xAbortInProgress THEN
prvAbort();
IF NOT xAbortInProgress THEN //中止完成
xOutBusy:= FALSE;
IF iError <> 0 THEN
xOutError:= TRUE;
END_IF;
END_IF;
END_IF;
xPreviousAbortInProgress := xAbortInProgress;prvAbort(),prvCyclicAction(),prvResetOutputs(),prvStart()为标准接口IFBCommand中的4个方法。
页:
[1]