基于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个方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Codesys_PEPSI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值