AnnexF/cmd_monitor_il.txt
changeset 0 fb772792efd1
equal deleted inserted replaced
-1:000000000000 0:fb772792efd1
       
     1 FUNCTION_BLOCK CMD_MONITOR
       
     2  VAR_INPUT AUTO_CMD : BOOL ; (* Automated command *)
       
     3           AUTO_MODE : BOOL ; (* AUTO_CMD enable *)
       
     4             MAN_CMD : BOOL ; (* Manual Command *)
       
     5         MAN_CMD_CHK : BOOL ; (* Negated MAN_CMD to debounce *)  
       
     6           T_CMD_MAX : TIME ; (* Max time from CMD to FDBK *)
       
     7                FDBK : BOOL ; (* Confirmation of CMD completion     
       
     8                                 by operative unit *)               
       
     9                 ACK : BOOL ; (* Acknowledge/cancel ALRM *)         
       
    10  END_VAR
       
    11  VAR_OUTPUT CMD : BOOL ;   (* Command to operative unit *)
       
    12            ALRM : BOOL ;   (* T_CMD_MAX expired without FDBK *)
       
    13  END_VAR
       
    14  VAR CMD_TMR : TON ;    (* CMD-to-FDBK timer *)
       
    15      ALRM_FF : SR ;     (* Note over-riding S input: *)
       
    16  END_VAR                (* Command must be cancelled before
       
    17                               "ACK" can cancel alarm *)
       
    18  (* Function Block Body *)
       
    19 LD	T_CMD_MAX	
       
    20 ST	CMD_TMR.PT	(* Store an input to the TON FB *)
       
    21 LD	AUTO_CMD	
       
    22 AND	AUTO_MODE	
       
    23 OR(	MAN_CMD	
       
    24 ANDN	AUTO_MODE	
       
    25 ANDN	MAN_CMD_CHK	
       
    26 )		
       
    27 ST	CMD	
       
    28 IN	CMD_TMR	(* Invoke the TON FB *)
       
    29 LD	CMD_TMR.Q	
       
    30 ANDN	FDBK	
       
    31 ST	ALRM_FF.S1	(* Store an input to the SR FB *)
       
    32 LD	ACK	
       
    33 R	ALRM_FF	(* Invoke the SR FB *)
       
    34 LD	ALRM_FF.Q1	
       
    35 ST    	ALRM	
       
    36 
       
    37 END_FUNCTION_BLOCK