1. ¿Por qué hacer pruebas de carga (Stress Testing)?
Hacer un "ping" a un PLC y que responda es un buen comienzo, pero una planta de producción real no vive de pings aislados. En plena producción, el SCADA estará extrayendo miles de variables, un ingeniero estará descargando un programa pesado en el TIA Portal, las cámaras de visión artificial enviarán imágenes por FTP, y los variadores exigirán respuestas de milisegundos. Todo al mismo tiempo.
Las pruebas de carga o Stress Testing sirven para simular el "peor escenario posible" (Worst Case Scenario) inyectando tráfico masivo en la red para ver si el hardware o la configuración de QoS fallan bajo presión. Para un técnico de UF1794, esta es la validación definitiva de que el diseño de red es sólido.
2. Herramientas de Inyección de Tráfico
Para saturar un enlace Gigabit no basta con abrir el navegador web. Los ingenieros utilizan herramientas de software o hardware específicas:
- Iperf / Iperf3: Es la herramienta estándar de código abierto para medir el ancho de banda máximo alcanzable en redes IP. Funciona en modelo cliente/servidor y permite inyectar ráfagas masivas de tráfico TCP o UDP a la velocidad exacta que le ordenes (ej. 900 Mbps sostenidos).
- Ostinato / Scapy: Permiten crear paquetes a medida (ej. tramas con direcciones MAC o IPs específicas) y enviarlas en bucle para estresar el procesamiento de las tablas ARP de los switches.
- Testadores Físicos (Hardware): Equipos como IxNetwork que pueden generar tráfico de línea (Line-Rate) sin que la CPU del ordenador limite la prueba.
3. Qué Monitorizar durante la Prueba de Estrés
El objetivo no es romper la red, sino observar cómo se comporta al borde del límite. Durante la inyección de tráfico, el técnico debe monitorizar tres parámetros críticos:
- Eficacia del QoS (Calidad de Servicio): Si saturas la red al 99% con tráfico de "descarga FTP" (baja prioridad), la comunicación PROFINET RT (alta prioridad) entre el PLC y sus esclavos debe mantenerse impecable. Si el PLC reporta un fallo de Watchdog, significa que las colas de prioridad del switch están mal configuradas.
- Carga de CPU en los Nodos: Los PLCs antiguos y la periferia de bajo coste a veces procesan la red con su CPU principal. Un torrente de tráfico (incluso si no va dirigido a ellos, como el Broadcast) puede saturar la CPU al 100%, parando la ejecución del código lógico de la máquina.
- Jitter (Variación del Retardo): En redes EtherNet/IP (CIP Sync), el tráfico pesado puede introducir retardos variables que destruyen la sincronización de los servomotores.
4. La Regla de Oro: Nunca en Producción
El Stress Testing es un arma de doble filo. Inyectar 1 Gigabit de tráfico en un entorno IT corporativo moderno causará un poco de lentitud. Inyectarlo en una red de control industrial "viva" puede causar una Parada de Emergencia, daños en la maquinaria e incluso poner en peligro vidas humanas al bloquear paquetes de Safety.
Las pruebas de estrés deben realizarse exclusivamente durante la fase FAT (en el taller del integrador), durante el SAT en la planta pero con los actuadores en "Modo Simulación" (sin movimiento físico), o en ventanas de mantenimiento programadas (Downtimes) extremadamente controladas.
Fuente: Elaboración propia / Licencia: CC BY-NC 4.0.
📝 Evaluación Técnica: Pruebas bajo Presión
1. ¿Cuál es el objetivo principal de realizar un Stress Test (Prueba de carga) en una red de automatización industrial?
2. Durante una prueba de estrés inyectando 800 Mbps de tráfico TCP, la comunicación del PLC con sus esclavos IO (PROFINET RT) empieza a perderse provocando fallos en las máquinas. Sabiendo que los enlaces físicos son de 1 Gigabit, ¿qué configuración lógica de la red ha fallado muy probablemente?
3. ¿Cuál es el riesgo y la regla de oro respecto al momento de ejecución de un "Stress Test" en el entorno OT (Operational Technology)?
🤖 Ejercicio Práctico 9: Simulador de Inyección UDP
Objetivo: Entender a nivel de código cómo herramientas de prueba son capaces de saturar una red enviando un torrente masivo de datos sin esperar respuesta (UDP).
Copia el siguiente *prompt* y pégalo en un modelo de IA (como ChatGPT, Gemini o Claude).