Glosario de Automatización • Excepciones Modbus de gateway 0A y 0B

Excepciones Modbus de gateway 0A y 0B: cómo corregirlas

Ingeniería Merobix • • 8 min de lectura

Los sondeos a través de un gateway Modbus TCP a serial regresan con el código de excepción 0A o 0B, y el registro del maestro muestra errores aunque el gateway responda al ping bien y otros dispositivos detrás de él respondan con normalidad. Estos dos códigos de excepción son especiales: a diferencia de la mayoría de las excepciones Modbus, los genera el propio gateway y no el dispositivo final, y cada uno le dice qué lado del gateway investigar. Leídos bien, recortan el espacio de búsqueda a la mitad antes de abrir un solo gabinete.

Volver al glosario

Excepciones Modbus de gateway 0A y 0B en una línea: Las excepciones Modbus 0A y 0B están definidas para gateways. El código 0A, trayectoria de gateway no disponible, significa que el gateway no pudo asignar una trayectoria interna para enrutar su petición, lo cual casi siempre indica un gateway mal configurado: un ID de unidad que mapea a ningún puerto o dispositivo aguas abajo, o un gateway sobrecargado más allá de su capacidad de peticiones concurrentes. El código 0B, el dispositivo destino del gateway no respondió, significa que el gateway sí enrutó la petición por su lado serial y no volvió respuesta: el dispositivo aguas abajo está apagado, mal cableado, en otra dirección o corriendo ajustes seriales que no coinciden. De forma crucial, recibir cualquiera de las dos excepciones prueba que la trayectoria TCP y el propio gateway están vivos; la falla está dentro de la configuración del gateway o más allá de él.

Primeras revisiones: lea qué código está recibiendo

Establezca con precisión qué excepción se devuelve, para qué IDs de unidad, y con qué consistencia, porque los dos códigos lo mandan a lugares distintos. Un código 0B que apunta a un ID de unidad mientras sus vecinos responden es un problema de un solo dispositivo aguas abajo. Un código 0A en un ID de unidad es un problema de mapeo para ese ID. Cualquiera de los dos códigos en todos los IDs de unidad sugiere el puerto serial del gateway o toda su tabla de mapeo. Un registro del maestro que junta todas las fallas como errores genéricos esconde estas distinciones, así que si el suyo lo hace, ejecute un puñado de sondeos manuales con un cliente de prueba Modbus y anote la excepción por ID de unidad usted mismo; toma minutos y estructura toda la investigación.

Note también lo que estas excepciones descartan. Una excepción es una respuesta Modbus válida: viajó del gateway de regreso por la conexión TCP hasta su maestro. La accesibilidad de red, la sesión TCP y el motor Modbus del gateway están demostrablemente funcionando. El tiempo gastado en switches, firewalls y cableado hacia el gateway se desperdicia para este síntoma: la investigación empieza en la configuración del gateway y continúa aguas abajo.

Excepción 0A: el gateway no puede enrutar la petición

Trayectoria de gateway no disponible significa que la petición nunca llegó a una línea serial porque el gateway no tenía trayectoria para ella. La causa dominante es el mapeo de ID de unidad: los gateways de varios puertos enrutan cada ID de unidad entrante a un puerto serial y dirección aguas abajo específicos según su tabla de mapeo, y un ID ausente de la tabla, o que apunta a un puerto deshabilitado o sin configurar, no tiene a dónde ir. Las tablas de mapeo se desactualizan cuando se agregan o redireccionan dispositivos en campo sin actualizar el gateway, por lo cual 0A tan a menudo aparece justo después de una visita de sitio que tocó el direccionamiento.

La segunda causa es la capacidad. Los gateways manejan un número finito de peticiones simultáneas, y un maestro sondeando de forma agresiva, o varios maestros compartiendo un gateway, pueden agotar los buffers internos, punto en el cual algunos gateways rechazan el excedente con 0A. La firma es intermitencia que escala con la carga: el mismo sondeo tiene éxito en periodos tranquilos y falla cuando el sondeo es denso. Las soluciones son bajar la tasa de sondeo, consolidar maestros, o repartir dispositivos entre más capacidad de gateway. Revisar la página de diagnósticos o los registros de estado del propio gateway, donde se provean, confirma una sobrecarga directamente en vez de por inferencia.

Excepción 0B: silencio del lado serial

El dispositivo destino no respondió significa que el gateway transmitió la petición aguas abajo y su propio temporizador de respuesta expiró sin réplica. El gateway le dice, con honestidad, que algo pasado su puerto serial no contestó. La lista de causas es exactamente la serial clásica: el dispositivo está apagado o falló, el cableado entre gateway y dispositivo está roto o quedó con polaridad invertida, la dirección real del dispositivo difiere de la que apunta el mapeo, o la velocidad en baudios, la paridad y los bits de parada discrepan entre el puerto serial del gateway y el dispositivo de modo que la petición llega como ruido.

Trabájelo como cualquier falla serial, con el gateway como su punto de referencia fijo. Si cada dispositivo en un puerto serial devuelve 0B, sospeche de los elementos compartidos: los ajustes de ese puerto, su troncal de cableado o su terminación. Si un dispositivo falla entre vecinos que funcionan, sospeche de la dirección de ese dispositivo, el cableado de su rama o su energía. Donde sea posible, lleve una laptop con un adaptador serial al lado aguas abajo del gateway y sondee el dispositivo mudo directamente con los mismos ajustes; un dispositivo que responde a un sondeo directo pero no al gateway fija la falla en la configuración del puerto del gateway o en la conexión de ese puerto a la troncal, y uno que sigue mudo confirma un problema de campo a perseguir con un multímetro.

Un parámetro de ajuste importa aquí: el tiempo de espera de respuesta aguas abajo del gateway. Un dispositivo lento, o uno al final de un enlace serial largo y lento, puede responder correctamente pero tarde, después de que el gateway ya se rindió y emitió 0B. Los gateways exponen este tiempo de espera precisamente porque los tiempos de respuesta aguas abajo varían por dispositivo y velocidad en baudios; donde se sabe que un dispositivo es lento, alargar el tiempo de espera serial del gateway, dentro de lo que el propio tiempo de espera del maestro permite, elimina los errores 0B falsos sin tocar hardware.

Cuándo escalar

Escale los problemas internos del gateway - un 0A que persiste con una tabla de mapeo verificada y carga ligera - al fabricante del gateway, con la versión de firmware, la configuración de mapeo y una captura de la petición que falla. Escale un 0B persistente en un dispositivo que también falla en un sondeo serial directo a quien mantiene el dispositivo de campo, con los ajustes seriales y el direccionamiento que verificó. El código de excepción, más el sondeo cruzado desde la posición del gateway, es la evidencia que mantiene corta cualquiera de las dos conversaciones.

Las flotas de dispositivos seriales detrás de gateways se benefician de tener esta visibilidad de forma permanente. Una plataforma SCADA como Merobix que sondea a través de gateways puede distinguir y registrar los tipos de excepción por dispositivo a lo largo del tiempo, de modo que un error de mapeo introducido por un cambio de campo aparece como una ráfaga de excepciones de gateway con una marca de tiempo, y la correlación con la orden de trabajo de ese día normalmente nombra la solución antes de que alguien conduzca al sitio.

Preguntas frecuentes

¿Cuál es la diferencia entre la excepción Modbus 0A y la 0B?

Ambas vienen de un gateway y no del dispositivo final, y dividen la falla en el puerto serial del gateway. La excepción 0A, trayectoria de gateway no disponible, significa que la petición nunca se enrutó aguas abajo: el gateway no tenía trayectoria, normalmente un ID de unidad ausente de su mapeo o una sobrecarga. La excepción 0B, el dispositivo destino no respondió, significa que la petición se envió aguas abajo y nada contestó: el dispositivo está apagado, mal direccionado, mal cableado o con ajustes seriales que no coinciden.

¿La excepción 0B significa que la red al gateway está mal?

Lo contrario. Una excepción es una respuesta Modbus bien formada que llegó a su maestro por la conexión TCP, así que la trayectoria de red, la sesión TCP y el propio gateway están probados como funcionando. La excepción 0B localiza la falla en el lado serial más allá del gateway: el dispositivo aguas abajo, su cableado, su dirección o los ajustes seriales entre gateway y dispositivo. Investigar switches o firewalls para un síntoma 0B mira exactamente en el lugar equivocado.

¿Por qué un dispositivo que funciona devuelve a veces la excepción 0B de todos modos?

Normalmente por temporización. El gateway espera un tiempo configurado la respuesta aguas abajo, y un dispositivo lento o un enlace de baja velocidad en baudios pueden responder después de que ese temporizador expira, así que el gateway reporta el dispositivo como sin responder aunque la respuesta llegó tarde. Alargar el tiempo de espera de respuesta aguas abajo del gateway, manteniéndolo dentro del tiempo de espera general del maestro, cura estas fallas falsas. Un 0B intermitente también puede indicar cableado marginal o un dispositivo que pierde sondeos bajo su propia carga.

Fuentes y lecturas

Referencias primarias de los organismos de normas y reguladores que definen este tema:

Más en Protocolos industriales
Remapeo de unit ID en gateway  •  Banderas de problema de dispositivo y control local de DNP3  •  Gateway de protocolo  •  ADU vs PDU en Modbus  •  Borrar una excepcion Modbus de direccion de datos ilegal  •  Todo en Protocolos industriales →
Capacitación SCADA gratuita para operadores
Merobix University - 70 lecciones en video y 261 preguntas de examen, del primer inicio de sesión a los reportes de cumplimiento (contenido en inglés). Sin llamada de ventas.
Comenzar gratis →