{
    S7_Author := "ABH";
    S7_BlockNumber := "15994";
    S7_BlockTitle := "MLC_h3";
    S7_EditorMode := "SCL";
    S7_Family := "ZeusControl";
    S7_IECCheck := "TRUE";
    S7_Optimized := "TRUE";
    S7_Version := "1.0"
}
FUNCTION_BLOCK "FB15994_ZC_INICIALIZAR_DISP"
    VAR_INPUT
        N_MAX_MUX_DISP : Int;
    END_VAR
    VAR
        s_Inicializar : Bool;
    END_VAR
    VAR_TEMP
        for_i : 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 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
                
                "DB2800_ED_MUX".Mux.Scada[#for_i].Index :=
                "DB2801_EA_MUX".Mux.Scada[#for_i].Index :=
                "DB2805_SD_MUX".Mux.Scada[#for_i].Index :=
                "DB2806_SA_MUX".Mux.Scada[#for_i].Index :=
                "DB2810_V_MUX".Mux.Scada[#for_i].Index :=
                "DB2815_M_MUX".Mux.Scada[#for_i].Index :=
                "DB2816_M_VF_MUX".Mux.Scada[#for_i].Index :=
                "DB2817_M_SINA_MUX".Mux.Scada[#for_i].Index :=
                "DB2825_TOT_MUX".Mux.Scada[#for_i].Index :=
                "DB2840_TQ_MUX".Mux.Scada[#for_i].Index :=
                "DB2841_TQ_AE_MUX".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_NETWORK
END_FUNCTION_BLOCK
