FUNCTION_BLOCK "FB15994_ZC_INICIALIZAR_DISP"
TITLE = FB15994_ZC_INICIALIZAR_DISP
{ S7_Optimized_Access := 'TRUE' }
AUTHOR : ABH
FAMILY : ZeusControl
VERSION : 1.0
   VAR_INPUT 
      N_MAX_MUX_DISP : Int;
   END_VAR

   VAR 
      s_Inicializar : Bool;
   END_VAR

   VAR_TEMP 
      for_i : Int;
   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 para la inicializacion de valores de dispositivos.el forzado de las entradas digitales para las pruebas FAT de los cuadros.
	
	En ella se realizan las siguientes acciones:
	
	- Comprobacion de inicializar, para salida rapida de la funcion.
	- Reset de los indices del multiplexado para evitar problemas al cargar los datos.
	- Copia de valores copiados desde excel para inicializar las configuraciones de los dispositivos.
	
	---
	### Dependencias Requeridas
	| Tipo | Elementos |
	|------|-----------|
	| FC   | - |
	| FB   | - |
	| DB   | `DB2000_ED`, `DB2001_EA`, `DB2005_SD`, `DB2006_SA`, `DB2010_V`, `DB2015_M`, `DB2016_M_VF`, `DB2025_TOT`, `DB2039_TQ` |
	| UDT  | - |
	
	---
	### Historial de Cambios
	| Versión  | Fecha      | Técnico | Cambios |
	|----------|------------|---------|---------|
	| 01.00.00 | 21.05.2025 | (ABH)   | Primera version. |
	*)
	END_REGION DESCRIPCION
	
	
	//  ==========================================================================================================
	REGION INICIALIZACION
	    
	    //  Si no hay orden de inicializar, salimos del bloque
	    IF NOT #s_Inicializar THEN
	        RETURN;
	    END_IF;
	    
	END_REGION INICIALIZACION
	
	
	//  ==========================================================================================================
	REGION RESET_INDICES_MULTIPLEXADO
	    
	    FOR #for_i := 0 TO #N_MAX_MUX_DISP DO
	        
	        "DB2000_ED".Mux.Scada[#for_i].Index :=
	        "DB2001_EA".Mux.Scada[#for_i].Index :=
	        "DB2005_SD".Mux.Scada[#for_i].Index :=
	        "DB2006_SA".Mux.Scada[#for_i].Index :=
	        "DB2010_V".Mux.Scada[#for_i].Index :=
	        "DB2015_M".Mux.Scada[#for_i].Index :=
	        "DB2016_M_VF".Mux.Scada[#for_i].Index :=
	        "DB2017_M_SINA".Mux.Scada[#for_i].Index :=
	        "DB2025_TOT".Mux.Scada[#for_i].Index :=
	        "DB2040_TQ".Mux.Scada[#for_i].Index :=
	        "DB2041_TQ_AE".Mux.Scada[#for_i].Index := 0;
	        
	    END_FOR;
	    
	END_REGION
	
	
	//  ==========================================================================================================
	//  RELLENAR CON VALORES DE EXCEL.
	//  RECORDAR:
	//      DESPUES DE INICIALIZAR, BORRAR LOS DATOS PARA NO GASTAR MEMORIA DEL PLC
	REGION VALORES_DISPOSITIVOS
	    
	    
	    
	    
	    
	END_REGION
	
	
	//  ==========================================================================================================
	REGION RESET_ORDENES
	    
	    //  Reset orden inicializar
	    #s_Inicializar := FALSE;
	    
	END_REGION
	
	
END_FUNCTION_BLOCK

