FUNCTION "FC15027_ZC_CONTADOR_MINUTOS" : Void
TITLE = FC15027_ZC_CONTADOR_MINUTOS
{ S7_Optimized_Access := 'TRUE' }
AUTHOR : ABH
FAMILY : ZeusControl
VERSION : 1.0
//Funcion contador de minutos
   VAR_INPUT 
      Pulso1seg : Bool;   // Pulso de 1 segundo
      Iniciar : Bool;   // Orden iniciar contador
      Reset : Bool;   // Reset contador
   END_VAR

   VAR_IN_OUT 
      Contador : "UDT_ZC_CONTADOR_MINUTOS";
   END_VAR

   VAR CONSTANT 
      MAX_MINUTOS : UDInt := 10000000;   // Valor maximo de minutos
   END_VAR


BEGIN
	REGION DESCRIPCION
	    (*
	    ###### (C)Copyright ZeusControl 2024 - 2024
	    
	    ---
	    ### Información del Sistema
	    | Hardware Compatible | Entorno de Ingeniería |
	    |---------------------|-----------------------|
	    | PLC serie 1200/1500 | TIA Portal 18         |
	    
	    ---
	    > **Restricciones:** Ninguna.
	    
	    ---
	    ### Descripción Funcional
	    
	    Función encargada de contar tiempo en minutos.
	    
	    ---
	    ### Dependencias Requeridas
	    | Tipo | Elementos |
	    |------|-----------|
	    | FC   | - |
	    | FB   | - |
	    | DB   | - |
	    | UDT  | - |
	    
	    ---
	    ### Historial de Cambios
	    | Versión  | Fecha      | Técnico | Cambios |
	    |----------|------------|---------|---------|
	    | 01.00.00 | 13.05.2024 | (ABH)   | Primera version. |
	*)
	END_REGION DESCRIPCION
	
	
	//  ==========================================================================================================
	REGION GESTION_CONTADOR
	    
	    //  ==========================================================================================================
	    REGION RESET_CONTADOR  
	        
	        IF #Reset OR #Contador.Minuto >= #MAX_MINUTOS THEN
	            #Contador.Minuto := #Contador.Segundo := 0;
	        END_IF;
	        
	    END_REGION RESET_CONTADOR  
	    
	    
	    //  ==========================================================================================================
	    REGION GESTION_CONTADOR
	        
	        IF #Iniciar AND #Pulso1seg THEN
	            #Contador.#Segundo += 1;
	            IF #Contador.#Segundo >= 60 THEN
	                #Contador.#Segundo := 0;
	                #Contador.#Minuto += 1;
	            END_IF;
	        END_IF;
	        
	    END_REGION GESTION_CONTADOR
	    
	END_REGION GESTION_CONTADOR
	
	
END_FUNCTION

