
Fallos de comunicación entre PLC y SCADA: síntomas, causas y cómo diagnosticarlos
PLC y SCADA · Diagnóstico
Un fallo de comunicación entre PLC y SCADA se localiza por capas: primero la física (cable, conectores, ruido eléctrico), después la red (switches, bucles, direcciones IP), luego el protocolo (tiempos de espera y códigos de error de Modbus, PROFINET u OPC UA) y por último la aplicación (cuántas variables se piden, cada cuánto y con qué reloj).
Esta guía es para quien tiene el problema delante. Si necesitas situarte antes, tienes explicado qué es un PLC, el autómata que gobierna la máquina, y qué es un sistema SCADA, el software que supervisa y registra la planta.
Antes de reiniciar nada: apunta a qué hora falla, qué equipos se quedan sin datos y qué dice el sistema (calidad del dato, código de error, mensaje del driver). Reiniciar el servidor o el switch suele devolver la comunicación, y con el reinicio se pierden los contadores del switch y lo que el driver no guarda en disco, que es lo que decía por qué se había perdido.
En esta página
- Síntomas y qué indican
- Tabla de diagnóstico
- Capa física
- Capa de red
- Capa de protocolo: Modbus, PROFINET y OPC UA
- Capa de aplicación
- Diagnóstico paso a paso
- Soluciones para que no vuelva a pasar
- Lo que cambia en una fábrica agroalimentaria
- Cómo lo trabajamos en ER Ingeniería
- Preguntas frecuentes
- Fuentes
Síntomas de una pérdida de comunicación y qué indican
Pocas veces empieza con una caída completa. Lo normal son señales pequeñas:
- Variables congeladas. El valor no se mueve aunque el proceso sí. Muchos drivers conservan el último valor leído al caer la conexión, y si la pantalla no enseña la calidad del dato, el operador ve una cifra creíble que ya no es real.
- Calidad «Bad» o «Uncertain». En OPC UA cada valor viaja con un código de estado: Good es un valor de buena calidad, Uncertain uno de calidad dudosa y Bad uno que no se puede usar [4]. El código concreto suele decir más que la alarma.
- Alarmas de comunicación intermitentes. Aparecen y se reponen solas. Si coinciden con el arranque de un motor grande, un cambio de turno o un lavado, la hora es la mejor pista.
- Huecos en los históricos. La tendencia une dos puntos con una recta o faltan registros de un lote, y, sin un búfer previo, ese hueco ya no se rellena.
- Escrituras que no llegan. Una consigna o una receta sale del SCADA y el autómata no la ejecuta, o la ejecuta tarde.
- Valores absurdos pero estables. Un número enorme o negativo donde debería haber una temperatura. El dato llega, pero se interpreta mal: lo vemos en la capa de aplicación.
Tabla de diagnóstico: síntoma, causa probable y comprobación
| Síntoma | Causa probable | Qué comprobar |
|---|---|---|
| Todas las variables de un equipo congeladas, sin alarma | Conexión caída y driver que mantiene el último valor; suscripción OPC UA cerrada o sin recuperar al reconectar | Calidad de los tags y estado de la conexión en el driver; enlace del puerto en el switch |
| Calidad «Bad» en un grupo de variables | Equipo sin respuesta, dirección mal mapeada, pasarela que no llega al esclavo | El código: en Modbus, 02 es dirección ilegal y 0B, esclavo detrás de la pasarela sin respuesta [1] |
| Alarma que va y viene, más con motores arrancando | Ruido eléctrico, pantalla del cable mal conectada, datos junto a potencia | Contadores de errores CRC/FCS del puerto, y si suben cuando arrancan los motores |
| Todo un tramo cae y no vuelve hasta quitar un cable | Bucle y tormenta de difusión (broadcast) | LED de actividad sin pausa; latiguillo nuevo que cierre un círculo; contadores de difusión si el switch es gestionado |
| Varios equipos caen unos segundos y vuelven solos | La redundancia (STP o anillo) se recompone tras un corte | Cambios de topología en el registro del switch; en anillos PROFINET, watchdog frente a la reconfiguración [2] |
| Un equipo deja de comunicar cuando se enciende otro | Dirección IP duplicada | MAC de esa IP que cambia; arping o captura con dos respuestas |
| Fallos de estación PROFINET puntuales | Watchdog corto para la red real, anillo que se reconfigura | Búfer de diagnóstico del controlador; tiempo de actualización y ciclos aceptados sin datos [2] |
| Pantallas lentas y timeouts en horas de carga | Demasiadas variables, sondeo más rápido de lo necesario, direcciones dispersas | Peticiones por ciclo y tiempo de respuesta, en el driver o en una captura |
| Huecos en el histórico o eventos desordenados | Corte sin búfer antes del tramo caído; relojes sin sincronizar | Registro del servicio de histórico; hora del PLC frente a la del servidor |
Capa física: cable, conectores y ruido eléctrico
Es la primera que hay que descartar y la que más se salta. Causas típicas: conectores RJ45 montados en obra que se aflojan con la vibración, entradas de cable a cajas de campo sin estanqueidad, humedad que se queda dentro tras los lavados y pantallas de cable sin conectar o conectadas de forma distinta a la que indica el fabricante del bus.
El ruido eléctrico tiene un patrón reconocible: los errores suben cuando arranca un motor grande o acelera un variador. Si el cable de datos comparte canaleta con las salidas de los variadores, el problema no se arregla tocando el software.
Cómo se comprueba: contadores de errores del puerto (tramas con CRC o FCS erróneo) en el switch o en el diagnóstico de puertos del autómata. Si suben, comprobador de cable y latiguillo de fábrica en lugar del sospechoso. Si los errores siguen al latiguillo, el fallo está en él.

Capa de red: switches, bucles, IP duplicadas y VLAN
Un switch no gestionado en un armario de planta funciona, pero no da contadores por puerto ni permite copiar tráfico para capturarlo.
Bucles. Un latiguillo que une dos tomas del mismo switch, o dos switches unidos por dos caminos sin un protocolo que gestione la redundancia, crea un círculo por el que las tramas de difusión dan vueltas sin fin. Suele pasar tras una ampliación o una reparación con prisa: todo el tramo cae a la vez y no vuelve hasta que se quita el cable que cierra el círculo. Con redundancia (STP o anillo), un cable cortado no tumba el tramo, aunque mientras la red se recompone puede haber caídas breves.
IP duplicadas. Un repuesto configurado con la IP de un equipo que sigue conectado, el portátil de un técnico externo, una pantalla nueva con su IP de fábrica. Dos equipos se turnan para comunicar: la MAC de esa IP cambia de una consulta a otra, y un arping o una captura muestran dos equipos que responden a la misma IP.
Segmentación. La guía del NIST para la seguridad de la tecnología operacional describe la segmentación de la red de planta por zonas, física con switches distintos o lógica con VLAN [6]. Además de proteger, evita que el tráfico de difusión de la oficina llegue a los autómatas.
Capa de protocolo: Modbus, PROFINET y OPC UA
Modbus: un timeout y una excepción dicen cosas distintas
La especificación de Modbus separa dos casos que en la pantalla se confunden. Si la petición no llega al esclavo, o llega con un error de paridad o de CRC, no hay respuesta y el cliente acaba registrando un tiempo de espera agotado. Si llega bien pero el equipo no puede atenderla, devuelve una respuesta de excepción: el código de función más 80 hexadecimal y un código con el motivo [1].
Traducido: un timeout es que no llegó respuesta. Apunta a cable, red, pasarela, equipo apagado o parámetros que no casan (dirección de esclavo, velocidad, paridad), porque el esclavo no contesta a una trama que no es suya ni a una que llega con errores [1]. Una excepción dice que el equipo recibió la petición y por qué no la atiende: el 01 y el 02 suelen ser de configuración, el 04 es una avería del equipo y el 0A y el 0B señalan a la pasarela o a lo que tiene detrás. Los códigos que más orientan:
| Código | Nombre | Qué suele significar |
|---|---|---|
| 01 | Illegal Function | El equipo no admite esa función, o no está en estado de atenderla [1] |
| 02 | Illegal Data Address | La petición se sale del mapa: en un equipo de 100 registros, leer 5 desde el 96 falla porque el 100 no existe [1] |
| 04 | Server Device Failure | Error irrecuperable en el equipo al ejecutar la petición [1] |
| 0A | Gateway Path Unavailable | Pasarela mal configurada o sobrecargada [1] |
| 0B | Gateway Target Device Failed to Respond | La pasarela preguntó y el esclavo no contestó; normalmente, no está en la red [1] |
Subir el tiempo de espera del driver puede quitar la alarma sin quitar la causa: los datos siguen llegando tarde, y en una línea serie donde el maestro pregunta a los esclavos de uno en uno, cada espera retrasa las peticiones que van detrás.
PROFINET: el tiempo de vigilancia
PROFINET IO une el autómata con su periferia y sus variadores. El SCADA suele hablar con el autómata por S7 u OPC UA, así que este fallo le llega de rebote: como alarma de fallo de estación, si el autómata la notifica, o como lecturas que dejan de ser válidas.
El watchdog de PROFINET es el tiempo que el controlador o el dispositivo IO aceptan sin recibir datos. Si se supera, el dispositivo pone valores sustitutivos y el controlador lo registra como fallo de estación. En el software de Siemens se fija como múltiplo entero del tiempo de actualización [2].
El búfer de diagnóstico del controlador dice qué dispositivo cayó y cuándo. En anillos, MRP, el protocolo de redundancia de la norma IEC 62439-2, tiene una reconfiguración típica de 200 ms y admite hasta 50 dispositivos por anillo, y Siemens pide un watchdog de 256 ms o más cuando se acoplan varios anillos [2]. Un watchdog más corto que la reconfiguración convierte un corte que el anillo debería absorber en una parada.
OPC UA: suscripciones que se pierden
Con OPC UA, el SCADA suele suscribirse a las variables. El servidor envía los cambios en cada intervalo de publicación y, si pasan varios ciclos seguidos sin cambios, un mensaje de mantenimiento (keep-alive). Si pasan demasiados ciclos sin que el cliente pida publicaciones, se agota el contador de vida y la suscripción se cierra [3].
Las suscripciones están pensadas para sobrevivir a un corte de la conexión y de la sesión [3], pero hay un escenario típico: la conexión vuelve y un grupo de variables sigue congelado, porque el corte duró más que la vida de la suscripción o porque el cliente abrió una sesión nueva sin transferirla ni crearla otra vez. La especificación prevé una cola de retransmisión para recuperar notificaciones perdidas con el servicio Republish [3]; que el cliente la use depende de cómo esté configurado.
Capa de aplicación: variables, sondeo y relojes
Sondeo excesivo. Pedir todas las variables cada segundo carga el procesador de comunicaciones del autómata y el driver. Una temperatura de depósito no necesita la frecuencia de una báscula en plena pesada.
Direcciones dispersas. Una lectura Modbus de registros admite de 1 a 125 registros contiguos [1]. Si las variables están repartidas por la memoria del autómata, hacen falta muchas peticiones pequeñas por ciclo; agrupadas en una zona de intercambio contigua, bastan muchas menos.
Latido (heartbeat). Un contador que el autómata incrementa y el SCADA vigila: si deja de cambiar, los datos son viejos aunque la conexión parezca abierta. Al revés también sirve: el autómata vigila un latido del SCADA y, si se para, deja de aceptar consignas remotas y pasa a un estado seguro definido.
Relojes. Con un reloj distinto en autómata, servidor e historiador, los eventos salen desordenados. NTP es el protocolo estándar para sincronizar relojes en red [7], y el NIST recuerda que la sincronización horaria es necesaria para correlacionar eventos y registros [6].
Tipos de datos. Los valores absurdos suelen ser un entero con signo leído como sin signo, o un real que viaja en dos registros y se recompone con el orden de palabras cambiado. Se confirma comparando el valor en línea del autómata con el del SCADA.
Cómo diagnosticar un fallo de comunicación entre PLC y SCADA, paso a paso
- Acota el alcance. ¿Un equipo, una línea o toda la planta? ¿Siempre, a ratos, a ciertas horas? Si cae todo a la vez, mira red o servidor; si cae un equipo, su cable, su puerto o su configuración.
- Lee lo que ya dice el sistema. Calidad de las variables, error del driver (timeout o excepción, y cuál), búfer de diagnóstico del autómata y eventos del servidor.
- Mira los contadores. En el switch gestionado: errores CRC, tramas descartadas, caídas de enlace y difusión por puerto. En el autómata: diagnóstico de puertos y estaciones. Ponlos a cero, espera a que se repita y compara.
- Captura el tráfico. Wireshark, el analizador de red libre, interpreta Modbus/TCP, PROFINET IO y OPC UA [8]. En una red con switch, un portátil conectado a un puerto cualquiera solo ve su propio tráfico y el de difusión: hace falta un puerto espejo (port mirroring o SPAN) en un switch gestionado, o un tap de red. El puerto espejo debe ser al menos tan rápido como el que copia y no reenvía tramas dañadas, así que los errores de CRC se ven en los contadores, no en la captura [5].
- Aísla, con cuidado. Conecta un portátil directo al equipo con un cliente de pruebas solo en lectura, por un segundo puerto libre o en una parada si hay que sacarlo de la red. Antes, mira qué enclavamientos entre autómatas pasan por esa red: desconectarlo los corta. Si así comunica bien durante horas, el problema está en la red o en la carga; si falla igual, en el equipo o su configuración.
- Cambia una cosa cada vez. Si cambias tres a la vez y el fallo desaparece, no sabrás cuál era.
Soluciones para que no vuelva a pasar
Encontrar la causa resuelve la avería de hoy. La siguiente se previene con la arquitectura:
| Medida | Qué evita | Cuándo compensa |
|---|---|---|
| Red de control separada, con switches propios o VLAN [6] | Tráfico de oficina en los autómatas; que un bucle en un despacho tire la planta | Si control y oficina comparten switches |
| Switches gestionados de gama industrial | Fallos sin rastro: dan contadores por puerto y permiten capturar [5] | Donde se juntan autómatas y servidores |
| Anillo con MRP y watchdog acorde [2] | Que un cable cortado deje medio tramo sin comunicación | Líneas en las que una parada cuesta más que el anillo |
| Sondeo por criticidad y zonas de intercambio contiguas [1] | Saturación del autómata y del driver; timeouts en horas de carga | Pantallas lentas o timeouts sin errores físicos |
| Búfer con marca de tiempo antes del tramo que se corta (en el autómata o en el equipo de recogida a pie de línea) que vuelca al reconectar | Huecos en históricos y lotes incompletos tras un corte | Cuando esos registros sirven de trazabilidad |
| NTP en autómatas, servidores e historiador [7] | Eventos desordenados y lotes con horas incoherentes | Siempre |
| Latido y estado seguro programados en el autómata | Actuar sobre datos viejos; consignas a destiempo | Donde dependan consignas o recetas |
Lo que cambia en una fábrica agroalimentaria
Con lavados frecuentes, la humedad entra por conectores y prensaestopas no estancos, y los fallos aparecen tras la limpieza. En fábricas de piensos, el polvo se acumula en armarios y switches mal cerrados. En bodega, la red carga con todo en vendimia, cuando menos se puede parar: los cambios de red se prueban fuera de campaña.
En cualquier fábrica de alimentos, los huecos en el histórico dejan incompleto el registro del lote. Qué pide la ley está en nuestro artículo sobre trazabilidad alimentaria.

Si la causa es la edad del sistema (autómatas sin repuestos, un SCADA en un sistema operativo sin soporte, drivers que nadie puede actualizar), el diagnóstico acaba en un plan de migración. Cómo se hace sin parar la producción está en la guía de modernización de SCADA y PLC.
Cómo lo trabajamos en ER Ingeniería
Llevamos desde 1981 en instalaciones eléctricas y automatización, y hemos automatizado 45 fábricas agroalimentarias entre fábricas de piensos, bodegas y plantas de alimentación. Cuando una planta pierde comunicación, lo diagnosticamos por capas y en la fábrica. Es lo que cubre nuestro servicio de automatización de bodegas y fábricas de piensos, desde el cuadro eléctrico hasta el software.
Para los datos tenemos SuitER, nuestro software industrial: su módulo SuitER Server conecta la red de autómatas con la red de gestión, recoge los datos en tiempo real y los guarda en base de datos. Para las plantas que ya funcionan, está nuestro servicio técnico SatER.
¿Tu SCADA pierde comunicación con los autómatas?
Cuéntanos qué protocolo usa tu planta y desde cuándo notas los síntomas. Con eso te decimos por dónde empezaríamos a mirar.
Habla con nuestro equipoO llámanos al 967 140 850
Preguntas frecuentes sobre fallos de comunicación PLC y SCADA
¿Por qué el SCADA pierde la comunicación con el PLC?
Las causas se reparten en cuatro capas: física (cable, conectores, ruido de variadores y motores), red (switches no gestionados, bucles, IP duplicadas), protocolo (timeouts, códigos de excepción Modbus, watchdog de PROFINET, suscripciones OPC UA) y aplicación (demasiadas variables, sondeo muy rápido, relojes sin sincronizar). Se revisan en ese orden.
¿Qué diferencia hay entre un timeout y una excepción en Modbus?
Un timeout significa que no llegó respuesta: la petición se perdió, llegó dañada o no casaba con el equipo (dirección de esclavo, velocidad o paridad distintas). Una excepción es una respuesta: el equipo recibió la petición y dice por qué no la atiende. El 02, por ejemplo, es una dirección de registro que no existe en su mapa; el 04, una avería del propio equipo, y el 0B, un esclavo que no contesta detrás de una pasarela.
¿Qué significa que una variable tenga calidad Bad o Uncertain en el SCADA?
Es el estado de calidad que acompaña al valor. En OPC UA, Good es un valor de buena calidad, Uncertain uno de calidad dudosa y Bad uno que no se puede usar. El código concreto que acompaña a Bad suele indicar la causa mejor que la alarma genérica de comunicación.
¿Qué es el watchdog en PROFINET?
Es el tiempo que el controlador o el dispositivo IO aceptan sin recibir datos. Si se supera, el dispositivo pone valores sustitutivos en sus salidas y el controlador lo registra como fallo de estación. En el software de Siemens se fija como múltiplo del tiempo de actualización.
¿Sirve de algo subir el timeout del driver?
Puede quitar la alarma sin quitar la causa. El dato llega más tarde, y en una línea serie cada espera retrasa las peticiones que van detrás. Conviene subirlo solo cuando se sabe por qué hace falta.
¿Cómo se captura el tráfico entre el PLC y el SCADA con Wireshark?
Con un switch gestionado que tenga puerto espejo (port mirroring o SPAN) o con un tap de red: un portátil conectado a un puerto cualquiera de un switch solo ve su propio tráfico y el de difusión. Las tramas con error de CRC no salen en la captura por puerto espejo, así que esos errores se miran en los contadores del switch.
¿Por qué hay huecos en los históricos del SCADA?
Lo habitual es que los datos se perdieran en el tramo caído y nadie los guardara antes de él. Se evita con un búfer con marca de tiempo antes de ese tramo, en el autómata o en el equipo que recoge los datos, que vuelca al reconectar; los desfases de hora, sincronizando todos los equipos con NTP.
Fuentes
- Modbus Organization. (2012). MODBUS Application Protocol Specification V1.1b3 (apdo. 7 y función 03). modbus.org (PDF)
- Siemens AG. (2022). SIMATIC PROFINET with STEP 7: Function Manual (11/2022, A5E03444486-AM; apdos. 3.1 y 6.4). cache.industry.siemens.com (PDF)
- OPC Foundation. (s. f.). OPC 10000-4: OPC Unified Architecture Part 4: Services (v1.05.07, 5.14.1.1). reference.opcfoundation.org
- OPC Foundation. (s. f.). OPC Unified Architecture Part 4: Services (v1.04, 7.34.1 StatusCode). reference.opcfoundation.org
- Wireshark Foundation. (s. f.). CaptureSetup/Ethernet. wiki.wireshark.org
- Stouffer, K. et al. (2023). Guide to Operational Technology (OT) Security (NIST SP 800-82r3; apdos. 6.2.1.3 y 6.2.12). csrc.nist.gov
- Mills, D., Martin, J., Burbank, J. y Kasch, W. (2010). RFC 5905: Network Time Protocol Version 4: Protocol and Algorithms Specification. IETF. rfc-editor.org
- Wireshark Foundation. (s. f.). Display Filter Reference: Modbus/TCP (y las de PROFINET IO y OpcUa Binary Protocol). wireshark.org
