{
    S7_Author := "ABH";
    S7_BlockComment := "MLC_3EZ";
    S7_BlockNumber := "4";
    S7_BlockTitle := "MLC_3TD";
    S7_EditorMode := "SCL";
    S7_Family := "ZeusControl";
    S7_IECCheck := "TRUE";
    S7_Optimized := "TRUE";
    S7_Version := "1.0"
}
FUNCTION "FC4_ZC_ENT_DISPONIBILIDAD" : Bool
    VAR_INPUT
        { S7_MLC := "MLC_38f" }
        Entidad : Int;
    END_VAR

    { S7_Language := "SCL" }
    NETWORK
        REGION DESCRIPCION
        (*
        ###### (C)Copyright ZeusControl 2025 - 2025
        
        ---
        ### 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 evaluar y determinar la disponibilidad operativa de las entidades del sistema.
        
        Las tareas que realiza son las siguientes:
        
        - Calcular el estado de disponibilidad de la entidad correspondiente en función del valor recibido en la entrada `Entidad`.
        - Verificar y restringir, por motivos de seguridad, el valor de la entrada `Entidad` para garantizar que no exceda los límites definidos en el array de entidades.
        
        ---
        ### Dependencias Requeridas
        | Tipo | Elementos |
        |------|-----------|
        | FC   | `FC4_ZC_DISPONIBILIDAD_ENTIDAD` |
        | FB   | - |
        | DB   | `DB6_ENTIDAD` |
        | UDT  | - |
            
        ---
        ### Historial de Cambios
        | Versión  | Fecha      | Técnico | Cambios |
        |----------|------------|---------|---------|
        | 01.00.00 | 14.03.2025 | (ABH)   | Primera version. |
        *)
        END_REGION DESCRIPCION
        
        
        //  ==========================================================================================================
        REGION GESTION_DISPONIBILIDAD
            
            //  Comprobacion de limites de la entrada Entidad. En caso de estar fuera de indices, devolvemos un FALSE.
            //  En caso de estar dentro de limites, devolvemos el estado de la entidad
            IF #Entidad < 1 OR #Entidad > "N_MAX_ENTIDAD" THEN
                #FC4_ZC_ENT_DISPONIBILIDAD := FALSE;
            ELSE
                #FC4_ZC_ENT_DISPONIBILIDAD := "DB6_ENTIDAD".ENT[#Entidad].Estado.Disponible;
            END_IF;
            
        END_REGION GESTION_DISPONIBILIDAD 
        
        
    END_NETWORK
END_FUNCTION
