graph TD subgraph Planta ["Red de Control (Nivel 2)"] P1["PLC Línea 1"] P2["PLC Línea 2"] P3["PLC Servicios"] end subgraph Servidor_SCADA ["Servidor SCADA Central (Nivel 3)"] IOS["Servidor de I/O
(Drivers / Polling)"] HIST[("Historiador
(BBDD SQL / InfluxDB)")] ALM["Gestor de Alarmas
(Eventos)"] IOS --> HIST IOS --> ALM end subgraph Clientes ["Sala de Control (Clientes)"] OP1["Operador 1
(Pantalla Proceso)"] OP2["Operador 2
(Pantalla Alarmas)"] end P1 <-->|"Modbus / S7 / OPC"| IOS P2 <-->|"Modbus / S7 / OPC"| IOS P3 <-->|"Modbus / S7 / OPC"| IOS HIST --> OP1 ALM --> OP1 HIST --> OP2 ALM --> OP2 style Planta fill:#fef5e7,stroke:#f39c12,stroke-width:2px style Servidor_SCADA fill:#e8f8f5,stroke:#27ae60,stroke-width:2px style Clientes fill:#ebf5fb,stroke:#2980b9,stroke-width:2px style IOS fill:#2ecc71,color:#fff style HIST fill:#9b59b6,color:#fff style ALM fill:#e74c3c,color:#fff

1. HMI vs SCADA: Aclarando la Diferencia

A menudo se confunden los términos HMI (Interfaz Humano-Máquina) y SCADA (Supervisión, Control y Adquisición de Datos). Aunque ambos muestran gráficos en una pantalla, pertenecen a niveles distintos de la pirámide (UF1794):

  • HMI (Nivel 2): Es una pantalla táctil montada físicamente en el cuadro eléctrico de una máquina específica. Solo habla con el PLC de esa máquina. No suele tener gran capacidad de almacenamiento a largo plazo.
  • SCADA (Nivel 3): Es un software de servidor que se ejecuta en la sala de control o en un centro de datos. Habla con decenas o cientos de PLCs de toda la fábrica simultáneamente. Agrupa los datos y ofrece una visión de "helicóptero" de toda la instalación.


2. La Arquitectura Interna del SCADA

Un sistema SCADA moderno (como WinCC, Ignition o Ignition/Inductive Automation) no es un único programa monolítico, sino un conjunto de servicios que colaboran entre sí:

  1. Servidor de E/S (I/O Server): Es el "traductor". Utiliza Drivers de comunicación para hablar con las diferentes marcas de PLCs (Driver S7 para Siemens, Driver CIP para Allen-Bradley, Driver Modbus TCP para dispositivos genéricos).
  2. Gestor de Alarmas: Evalúa los datos recogidos por el I/O Server. Si una temperatura supera los 90ºC, dispara un evento visual, envía un email al equipo de mantenimiento y guarda un registro de la incidencia.
  3. Historiador (Historian): Su misión es devorar datos y guardarlos a largo plazo (meses o años) en una Base de Datos (típicamente SQL o Time-Series como InfluxDB). Es vital para analizar tendencias ("¿Por qué esta bomba consume más corriente este mes que el mes pasado?").


3. Conectividad y Carga de Polling

El SCADA obtiene sus datos realizando "Polling" (preguntando a cada PLC "dame tus datos"). Un error de diseño muy común es configurar el SCADA para que pregunte todas las variables cada 100 ms. Como el SCADA se comunica por TCP/IP (Tráfico NRT), esto genera una carga masiva en el procesador de los PLCs de Nivel 2, pudiendo ralentizar el control de la maquinaria.

El diseño funcional correcto exige clasificar los Grupos de Adquisición (Scan Classes):

  • Presiones y caudales: Polling cada 1 segundo (necesitan respuesta rápida).
  • Niveles de tanques gigantes: Polling cada 5 o 10 segundos (cambian muy lentamente).
  • Contadores de piezas de final de turno: Polling cada 1 minuto.


4. High Performance HMI: El Nuevo Paradigma Visual

En el pasado, los SCADAs se diseñaban como videojuegos: tuberías en 3D, bombas animadas y colores brillantes por todas partes. Los estudios ergonómicos demostraron que esto es contraproducente: cuando todo es brillante, el operador no detecta rápidamente qué está fallando.

El estándar actual se denomina High Performance HMI (HPHMI), o Conciencia Situacional (Situational Awareness). Sus reglas son estrictas:

  • El fondo debe ser gris. Nada de negro profundo ni blanco nuclear, para no cansar la vista en turnos de 8 horas.
  • Sin animaciones 3D. Los gráficos deben ser planos y esquemáticos (Flat Design).
  • El color se reserva estrictamente para llamar la atención. Un motor funcionando correctamente no se dibuja verde brillante; se dibuja en gris o un tono tenue. Si hay un fallo crítico, entonces SÍ parpadea en rojo intenso. Esto guía el ojo del operador instantáneamente hacia el problema.
Pantalla SCADA aplicando los conceptos de High Performance HMI con tonos grises y alertas destacadas.
Figura 1: Interfaz de Supervisión SCADA. Aplicando el concepto de "High Performance HMI", la pantalla utiliza fondos grises y representaciones planas. Los colores cálidos (naranja/rojo) se utilizan exclusivamente para destacar anomalías, guiando la atención del operador de forma inmediata sin causar fatiga visual.
Fuente: Elaboración propia / Licencia: CC BY-NC 4.0.

📝 Evaluación Técnica: Arquitectura SCADA

1. En una arquitectura de planta, ¿cuál es la diferencia principal entre un panel HMI local y un sistema SCADA?

2. Según los principios modernos de diseño "High Performance HMI" (Situational Awareness), ¿cuál de las siguientes es una práctica de diseño RECOMENDADA?

3. Para optimizar el tráfico de red (Nivel 3 a Nivel 2), se configuran diferentes "Scan Classes" o Grupos de Adquisición en el Servidor de E/S del SCADA. ¿Por qué es crítico no configurar TODAS las variables para que se lean cada 100 ms?

🤖 Ejercicio Práctico 8: Servidor I/O y Gestor de Alarmas (Python)

Objetivo: Simular cómo el "motor" interno de un SCADA recopila datos de un PLC (polling) y procesa lógicamente esos datos para disparar alarmas.

Copia el siguiente *prompt* y pégalo en un modelo de IA (como ChatGPT, Gemini o Claude).

Actúa como un arquitecto de software SCADA. Escribe un script en Python que simule el motor de un servidor SCADA conectándose a un PLC. El script debe: 1. Usar `pyModbusTCP` para conectarse a un PLC simulado (en 'localhost' puerto 502). 2. Definir una variable "SetPoint_Alarma_Temp" a 85 grados. 3. Entrar en un bucle infinito que simule una "Scan Class" o Grupo de Adquisición de 2 segundos (time.sleep(2)). 4. En cada ciclo, leer el 'Input Register' 0 (simulando la temperatura actual de un horno). 5. Si la temperatura es menor o igual a 85, imprimir: "ESTADO: Normal. Temp: [valor]ºC". 6. Si la temperatura supera los 85 grados, el Gestor de Alarmas debe intervenir e imprimir en MAYÚSCULAS Y ROJO: "[!!!] ALARMA HIGH-HIGH: Temperatura Crítica de [valor]ºC detectada". Comenta el código explicando cómo este mecanismo de polling y evaluación de reglas lógicas es el núcleo de cualquier SCADA industrial, separando la recolección de datos brutos de la presentación de inteligencia al operador.