diff -r 000000000000 -r fb772792efd1 AnnexF/cmd_monitor_il.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AnnexF/cmd_monitor_il.txt Wed Jan 31 15:32:38 2007 +0100 @@ -0,0 +1,37 @@ +FUNCTION_BLOCK CMD_MONITOR + VAR_INPUT AUTO_CMD : BOOL ; (* Automated command *) + AUTO_MODE : BOOL ; (* AUTO_CMD enable *) + MAN_CMD : BOOL ; (* Manual Command *) + MAN_CMD_CHK : BOOL ; (* Negated MAN_CMD to debounce *) + T_CMD_MAX : TIME ; (* Max time from CMD to FDBK *) + FDBK : BOOL ; (* Confirmation of CMD completion + by operative unit *) + ACK : BOOL ; (* Acknowledge/cancel ALRM *) + END_VAR + VAR_OUTPUT CMD : BOOL ; (* Command to operative unit *) + ALRM : BOOL ; (* T_CMD_MAX expired without FDBK *) + END_VAR + VAR CMD_TMR : TON ; (* CMD-to-FDBK timer *) + ALRM_FF : SR ; (* Note over-riding S input: *) + END_VAR (* Command must be cancelled before + "ACK" can cancel alarm *) + (* Function Block Body *) +LD T_CMD_MAX +ST CMD_TMR.PT (* Store an input to the TON FB *) +LD AUTO_CMD +AND AUTO_MODE +OR( MAN_CMD +ANDN AUTO_MODE +ANDN MAN_CMD_CHK +) +ST CMD +IN CMD_TMR (* Invoke the TON FB *) +LD CMD_TMR.Q +ANDN FDBK +ST ALRM_FF.S1 (* Store an input to the SR FB *) +LD ACK +R ALRM_FF (* Invoke the SR FB *) +LD ALRM_FF.Q1 +ST ALRM + +END_FUNCTION_BLOCK