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

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
bAutoRunningal pulsarbStart. En serie se disponen los contactos normalmente cerradosbStopyH5, 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 mientrasbAutoRunningesté activo y el sensor superiorB3no 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 bobinaB1tras 3 segundos de marcha. - Network 4 (Activación de Sensor B2 e Inyección de Falla): El temporizador
tonNivel2(PT =T#6S) activaB2tras 6 segundos. En paralelo se incluye el contactobFalla_B2para simular fallos desde el HMI.

Networks 5 a 9: Temporización Superior y Salidas Combinacionales
- Network 5 (Activación de Sensor B3): El temporizador
tonNivel3(PT =T#9S) activaB3a los 9 segundos de llenado (con rama paralelabFalla_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.

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.

3.3 Diseño y Validación del HMI en CODESYS Visualizations
El HMI desarrollado integra los siguientes elementos:
- Tanque Seccionado con Animación de Color: Tres bloques de fluido acoplados a
PLC_PRG.B1,PLC_PRG.B2yPLC_PRG.B3que conmutan de blanco a azul cian conforme asciende el nivel. - 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. - Tablero de Señalización (H4, H2, H1, H3, H5): Cinco lámparas diferenciadas cromáticamente según su criticidad.
- 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. - Panel de Control: Pulsadores momentáneos
STARTySTOPjunto al selectorSIMULAR FALLO.
Vista General de Edición del HMI

Validación de Estados en Simulación
-
Estado Inicial (H4 Activo — Tanque Vacío):

-
Llenado Completo a los 9 s (H3 — Sobrellenado):

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

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