3. Implementacion en CODESYS y HMI - gevengood/Automatizacion-Tanque-Quimico-Doncel GitHub Wiki

3. Implementación en CODESYS V3.5 y Diseño de HMI (Control por Tiempo)

3.1 Declaración de Variables en CODESYS (PLC_PRG)

En CODESYS V3.5 se implementó una aproximación de proceso controlado por tiempo, donde tres bloques temporizadores con retardo a la conexión (TON: tonNivel1, tonNivel2, tonNivel3) emulan la dinámica progresiva de ascenso del fluido químico a los 3 s, 6 s y 9 s desde la apertura de la válvula de entrada.

PROGRAM PLC_PRG
VAR
    // --- CONTROL DE MARCHA Y PARADA ---
    bStart          : BOOL;  // Pulsador Start
    bStop           : BOOL;  // Pulsador Stop
    bAutoRunning    : BOOL;  // Marca de sistema en marcha

    // --- ACTUADOR ---
    bValveInlet     : BOOL;  // Válvula de llenado

    // --- TEMPORIZADORES DE LLENADO (CONTROL POR TIEMPO) ---
    tonNivel1       : TON;   // Tiempo hasta sensor de fondo B1 (3 seg)
    tonNivel2       : TON;   // Tiempo hasta sensor medio B2 (6 seg)
    tonNivel3       : TON;   // Tiempo hasta sensor alto B3 (9 seg)

    // --- SENSORES DEL TANQUE ---
    B1              : BOOL;  // Sensor fondo
    B2              : BOOL;  // Sensor medio
    B3              : BOOL;  // Sensor alto

    // --- LÁMPARAS INDICADORAS ---
    H1              : BOOL;  // Nivel correcto
    H2              : BOOL;  // Nivel bajo
    H3              : BOOL;  // Nivel alto / Sobrellenado
    H4              : BOOL;  // Tanque vacío
    H5              : BOOL;  // Falla de sensor

    // --- INTERRUPTORES PARA PROBAR FALLA EN EL HMI ---
    bFalla_B2       : BOOL;  // Fuerza sensor B2
    bFalla_B3       : BOOL;  // Fuerza sensor B3
END_VAR

Declaración de Variables en CODESYS


3.2 Explicación del Diagrama Ladder en CODESYS (Networks 1 a 10)

Networks 1 a 4: Enclavamiento Maestro, Válvula y Temporización Inicial

  • Network 1 (Marcha/Parada con Seguridad): Enclava la marca bAutoRunning al pulsar bStart. En serie se disponen los contactos normalmente cerrados bStop y H5, garantizando que cualquier parada manual o falla de sensores desenergice inmediatamente el proceso.
  • Network 2 (Control de Válvula de Entrada bValveInlet): Energiza la válvula de llenado mientras bAutoRunning esté activo y el sensor superior B3 no se haya activado ([/] B3), previniendo el derrame químico.
  • Network 3 (Activación de Sensor B1 por Tiempo): El temporizador tonNivel1 (PT = T#3S) activa la bobina B1 tras 3 segundos de marcha.
  • Network 4 (Activación de Sensor B2 e Inyección de Falla): El temporizador tonNivel2 (PT = T#6S) activa B2 tras 6 segundos. En paralelo se incluye el contacto bFalla_B2 para simular fallos desde el HMI.

Ladder CODESYS Networks 1 a 4

Networks 5 a 9: Temporización Superior y Salidas Combinacionales

  • Network 5 (Activación de Sensor B3): El temporizador tonNivel3 (PT = T#9S) activa B3 a los 9 segundos de llenado (con rama paralela bFalla_B3).
  • Network 6 (Indicador H4 — Tanque Vacío): Implementa B3'·B2'·B1' → H4.
  • Network 7 (Indicador H2 — Nivel Muy Bajo): Implementa B3'·B2'·B1 → H2.
  • Network 8 (Indicador H1 — Nivel Correcto): Implementa B3'·B2·B1 → H1.
  • Network 9 (Indicador H3 — Sobrellenado): Implementa B3·B2·B1 → H3.

Ladder CODESYS Networks 5 a 9

Network 10: Detección de Error de Sensores (H5)

  • Network 10 (Indicador H5 — Falla en Sensores): Implementa la ecuación reducida por Karnaugh (B2·B1') + (B3·B2') → H5 mediante dos ramas en paralelo.

Ladder CODESYS Network 10


3.3 Diseño y Validación del HMI en CODESYS Visualizations

El HMI desarrollado integra los siguientes elementos:

  1. Tanque Seccionado con Animación de Color: Tres bloques de fluido acoplados a PLC_PRG.B1, PLC_PRG.B2 y PLC_PRG.B3 que conmutan de blanco a azul cian conforme asciende el nivel.
  2. Sensores Laterales (B1, B2, B3) y Válvula Superior (bValveInlet): Indicadores luminosos en la pared izquierda del tanque y tubería animada que cambia a verde al abrirse.
  3. Tablero de Señalización (H4, H2, H1, H3, H5): Cinco lámparas diferenciadas cromáticamente según su criticidad.
  4. Banner de Alarma Dinámica: Configurado con la propiedad Invisible := NOT PLC_PRG.H5, permanece oculto en operación normal y aparece automáticamente ante una falla de sensores.
  5. Panel de Control: Pulsadores momentáneos START y STOP junto al selector SIMULAR FALLO.

Vista General de Edición del HMI

Vista General HMI CODESYS

Validación de Estados en Simulación

  • Estado Inicial (H4 Activo — Tanque Vacío): HMI Estado Tanque Vacío

  • Llenado Completo a los 9 s (H3 — Sobrellenado): HMI Estado Sobrellenado

  • Inyección de Falla (B2=1, B1=0 → H5 Encendido): HMI Estado Falla H5


Anterior: 2. Diseño Lógico Combinacional | Siguiente: 4. Validación en OpenPLC y Prototipo Físico