{
    S7_BlockNumber := "9";
    S7_BlockTitle := "MLC_57G";
    S7_Optimized := "TRUE";
    S7_PreferredLanguage := "LAD";
    S7_Version := "0.1"
}
FUNCTION "FC9_DISPOSITIVOS" : Void
    VAR_TEMP
        for_i : Int;
        t_N_MAX : Int;
    END_VAR

    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_3QX"
    }
    NETWORK
        (*
        ============================================================================
        ZEUS CONTROL, S.A.
        (c)Copyright (2020) All Rights Reserved
        -----------------------------------------------------------------------------
        
        Software:       TIA Portal 15.1
        Restricciones:  PLC serie 1500
        
        
        Nombre:         GESTOR DE DISPOSITIVOS
        Descripcion:    Bloque de gestion de llamadas a las funciones de dispositivos y enclavamientos
        
        Change log:
        Version     Fecha       Tecnico a cargo
        01.00.00    15.10.2020  (ABH)   Primera version
        01.00.01    20.04.2022  (ABH)   Se cambian las llamadas a SCL para mejor gestion del tiempo de ciclo.
        01.00.01    20.04.2022  (HCR)   Se quita enclavamiento.
        ============================================================================
        *)
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_45A"
    }
    NETWORK
        
        //  Traspaso de N_MAX a variable temporal para evitar fallos de compilacion
        #t_N_MAX := "N_MAX_SCADA";
        
        //  Scada[x]  -   xxxxxxx
        FOR #for_i := 1 TO #t_N_MAX DO
            "DB2800_ED_MUX".Mux.Scada[#for_i].Habilitar :=
            "DB2801_EA_MUX".Mux.Scada[#for_i].Habilitar :=
            "DB2805_SD_MUX".Mux.Scada[#for_i].Habilitar :=
            "DB2806_SA_MUX".Mux.Scada[#for_i].Habilitar :=
            "DB2810_V_MUX".Mux.Scada[#for_i].Habilitar :=
            "DB2815_M_MUX".Mux.Scada[#for_i].Habilitar :=
            "DB2816_M_VF_MUX".Mux.Scada[#for_i].Habilitar :=
            "DB2817_M_SINA_MUX".Mux.Scada[#for_i].Habilitar :=
            "DB2825_TOT_MUX".Mux.Scada[#for_i].Habilitar :=
            "DB2835_PID_MUX".Mux.Scada[#for_i].Habilitar :=
            "DB2840_TQ_MUX".Mux.Scada[#for_i].Habilitar :=
            "DB2841_TQ_AE_MUX".Mux.Scada[#for_i].Habilitar := TRUE;
        END_FOR;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_4ba"
    }
    NETWORK
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_4Yf"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Entrada Digital
        //  Traspaso de valores de entradas a los dispositivos configurados con tipo de acceso directo.
        //  Ejemplo: "DB2000_ED".ED[TAG].Estado_EntradaCanal := %I100.0;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_V3"
    }
    NETWORK
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_3iH"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Entrada Analogica
        //  Traspaso de valores de entradas a los dispositivos configurados con tipo de acceso directo.
        //  Ejemplo: "DB2001_EA".EA[TAG].Estado_Lectura := %IW100.0;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_4CS"
    }
    NETWORK
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_3ci"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Salida Digital
        //  Traspaso de valores de salida de los dispositivos configurados con tipo de acceso directo.
        //  Ejemplo: %QW100.0 := "DB2005_SD".SD[TAG].Estado_Salida;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_3hM"
    }
    NETWORK
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_38F"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Salida Analogica
        //  Traspaso de valores de seguridad individual para cada dispositivo.
        //  Ejemplo: "DB2006_SA"".SA[TAG].Estado_SeguridadOk := NOT %I100.0;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_3HP"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Salida Analogica
        //  Traspaso de valores de salida de los dispositivos configurados con tipo de acceso directo.
        //  Ejemplo: %QW100.0 := "DB2006_SA".SA[TAG].Estado_ValorTarjeta;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_YM"
    }
    NETWORK
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_3Yw"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Valvula
        //  Traspaso de valores de entradas a los dispositivos configurados con tipo de acceso directo.
        //  Ejemplo: "DB2010_V".V[TAG].Estado_EntradaRetornoReposo := %IW100.0;
        //  Ejemplo: "DB2010_V".V[TAG].Estado_EntradaRetornoTrabajo := %IW100.1;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_36k"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Valvula
        //  Traspaso de valores de seguridad individual para cada dispositivo.
        //  Ejemplo: "DB2010_V".V[TAG].Estado_SeguridadOk := NOT %I100.0;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_3UP"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Valvula
        //  Traspaso de valores de salida de los dispositivos configurados con tipo de acceso directo.
        //  Ejemplo: %Q100.0 := "DB2010_V".V[TAG].Estado_Salida;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_xg"
    }
    NETWORK
        
        REGION TRASPASO_VALORES_ENTRADAS
            
            //  Traspaso de valores de entradas solo a dispositivos configurados
            
            
        END_REGION TRASPASO_VALORES_ENTRADAS
        
        
        REGION SEGURIDADES
            
            //  ====================================================================
            //  SEGURIDADES
            
        END_REGION SEGURIDADES
        
        
        
        
        
        REGION TRASPASO_VALORES_SALIDAS
            
            //  Traspaso de valores de salidas solo a dispositivos configurados
            
            
        END_REGION
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_4dQ"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Motor
        //  Traspaso de valores de entradas a los dispositivos configurados con tipo de acceso directo.
        //  Ejemplo: "DB2015_M".M[TAG].Estado_EntradaConfMarcha := %IW100.0;
        //  Ejemplo: "DB2015_M".M[TAG].Estado_EntradaTermico := %IW100.1;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_qM"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Motor
        //  Traspaso de valores de seguridad individual para cada dispositivo.
        //  Ejemplo: "DB2015_M".M[TAG].Estado_SeguridadOk := NOT %I100.0;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_gL"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Motor
        //  Traspaso de valores de salida de los dispositivos configurados con tipo de acceso directo.
        //  Ejemplo: %Q100.0 := "DB2015_M".M[TAG].Estado_Salida;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_sr"
    }
    NETWORK
        
        REGION TRASPASO_VALORES_ENTRADAS
            
            //  Traspaso de valores de entradas solo a dispositivos configurados
            
            
        END_REGION TRASPASO_VALORES_ENTRADAS
        
        
        REGION SEGURIDADES
            
            //  ====================================================================
            //  SEGURIDADES
            
        END_REGION SEGURIDADES
        
        
        
        
        
        REGION TRASPASO_VALORES_SALIDAS
            
            //  Traspaso de valores de salidas solo a dispositivos configurados
            
            
        END_REGION
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_Zs"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Motor variador
        //  Traspaso de valores de entradas a los dispositivos configurados con tipo de acceso directo.
        //  Ejemplo: "DB2016_M_VF".M_VF[TAG].Estado_EntradaRetornoReposo := %IW100.0;
        //  Ejemplo: "DB2016_M_VF".M_VF[TAG].Estado_EntradaRetornoTrabajo := %IW100.1;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_fF"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Motor variador
        //  Traspaso de valores de seguridad individual para cada dispositivo.
        //  Ejemplo: "DB2016_M_VF".M_VF[TAG].Estado_SeguridadOk := NOT %I100.0;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_4sf"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Motor variador
        //  Traspaso de valores de salida de los dispositivos configurados con tipo de acceso directo.
        //  Ejemplo: %Q100.0 := "DB2016_M_VF".M_VF[TAG].Estado_Salida;
        //  Ejemplo: %QW100 := "DB2016_M_VF".M_VF[1].Estado_ValorTarjeta;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_3GK"
    }
    NETWORK
        
        REGION TRASPASO_VALORES_ENTRADAS
            
            //  Traspaso de valores de entradas solo a dispositivos configurados
            
            
        END_REGION TRASPASO_VALORES_ENTRADAS
        
        
        REGION SEGURIDADES
            
            //  ====================================================================
            //  SEGURIDADES
            
        END_REGION SEGURIDADES
        
        
        
        
        
        REGION TRASPASO_VALORES_SALIDAS
            
            //  Traspaso de valores de salidas solo a dispositivos configurados
            
            
        END_REGION
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_4cA"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Motor sinamics
        //  Traspaso de valores de entradas a los dispositivos configurados con tipo de acceso directo.
        //  Ejemplo: "DB2017_M_SINA".M_SINA[TAG].Estado_RetornoTermico := %IW100.0;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_49Q"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Motor sinamics
        //  Traspaso de valores de seguridad individual para cada dispositivo.
        //  Ejemplo: "DB2017_M_SINA".M_SINA[TAG].Estado_SeguridadOk := NOT %I100.0;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_4Eg"
    }
    NETWORK
        
    END_NETWORK
    {
        S7_Language := "LAD";
        S7_NetworkTitle := "MLC_3Jk"
    }
    NETWORK
        RUNG wire#powerrail
        END_RUNG
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_Ms"
    }
    NETWORK
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_4wV"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Tanque
        //  Llamada a bloque de control de tanque individual
        //  Ejemplo: 
        // "FC2940_ZC_TQ_INDV"(Pulso1seg:="DB1_SYS".Pulso1seg,
        //                     Arranque:="DB1_SYS".ARRANQUE,
        //                     EstadoBocaHombre:="DB2000_ED".ED[1].Estado_Activado,
        //                     EstadoNivelBajo:="DB2000_ED".ED[1].Estado_Activado,
        //                     EstadoNivelAlto:="DB2000_ED".ED[1].Estado_Activado,
        //                     EstadoComOK:=TRUE,
        //                     ValorNivelPresion:="DB2001_EA".EA[1].Estado_ValorIngenieria,
        //                     ValorTemperatura:="DB2001_EA".EA[1].Estado_ValorIngenieria,
        //                     HisteresisAltoNivelAgitacion:=10.0,
        //                     HisteresisBajoNivelAgitacion:=10.0,
        //                     HisteresisAltoNivelTemp:=10.0,
        //                     HisteresisBajoNivelTemp:=10.0,
        //                     TiempoTanqueVacio:=10,
        //                     TiempoTanqueLLeno:=5,
        //                     HabilitarFrecAgitacion:=TRUE,
        //                     NumeroTanque:=1);
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_4vZ"
    }
    NETWORK
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_4Tu"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Tanque aire esteril
        //  Traspaso de valores de entradas y configuracion.
        //  Ejemplo:
        //  "DB2041_TQ_AE".TQ_AE[TAG].Estado_ValorPresion := "DB2001_EA".EA[TAG].Estado_ValorIngenieria;
        //  "DB2041_TQ_AE".TQ_AE[TAG].Config_PresionMaxTrabajo := PReal[3].Valor;
        //  "DB2041_TQ_AE".TQ_AE[TAG].Config_PresionMinTrabajo := PReal[4].Valor;
        //  "DB2041_TQ_AE".TQ_AE[TAG].Config_PresionMaxAlarma := PReal[5].Valor;
        //  "DB2041_TQ_AE".TQ_AE[TAG].Config_PresionMinAlarma := PReal[6].Valor;
        //  "DB2041_TQ_AE".TQ_AE[TAG].Tiempos_SetPointAlarmaMaxPresion := PInt[9].Valor;
        //  "DB2041_TQ_AE".TQ_AE[TAG].Tiempos_SetPointAlarmaMinPresion := PInt[10].Valor;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_4hx"
    }
    NETWORK
        
        //  ==========================================================================================================
        //  Tanque aire esteril
        //  Traspaso de valores de salida.
        //  Ejemplo:
        //  IF "DB2041_TQ_AE".TQ_AE[TAG].Salida_ValvulaDucha THEN
        //      "DB2010_V".V[TAG].Orden_ActivarAuto := TRUE;
        //  END_IF;
        //  IF "DB2041_TQ_AE".TQ_AE[TAG].Salida_ValvulaEsteril THEN
        //     "DB2010_V".V[TAG].Orden_ActivarAuto := TRUE;
        //  END_IF;
        //  IF "DB2041_TQ_AE".TQ_AE[TAG].Salida_ValvulaVenteo THEN
        //     "DB2010_V".V[TAG].Orden_ActivarAuto := TRUE;
        //  END_IF;
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_34u"
    }
    NETWORK
        
        
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_4GY"
    }
    NETWORK
        
        
        
        
        
    END_NETWORK
    {
        S7_Language := "SCL";
        S7_NetworkTitle := "MLC_47v"
    }
    NETWORK
        
        
        //  ======================================================================================
        //  PID01 - 
        
        
        
    END_NETWORK
END_FUNCTION
