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í:
- 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).
- 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.
- 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.
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).