AnnexF/cmd_monitor_il.txt
changeset 0 fb772792efd1
--- /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