FUNCTION "FC4_ZC_ENT_DISPONIBILIDAD" : Bool
TITLE = FC4_ZC_DISPONIBILIDAD_ENTIDAD
{ S7_Optimized_Access := 'TRUE' }
AUTHOR : ABH
FAMILY : ZeusControl
VERSION : 1.0
//Funcion para comprobar disponibilidad de las entidades.
   VAR_INPUT 
      Entidad : Int;   // Numero de entidad a gestionar
   END_VAR


BEGIN
	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_FUNCTION

