¿Qué es una excepción de dirección de datos ilegal Modbus (código 02)?
Cuando un dispositivo Modbus responde una petición pero la rechaza con la excepción código 02, le está diciendo algo preciso y útil: el registro que usted pidió no existe en este dispositivo. A diferencia de un tiempo agotado, que lo deja adivinando, una excepción de dirección de datos ilegal es un puntero claro a un error de direccionamiento. El dispositivo está presente, energizado, hablando y correctamente configurado en el bus - simplemente no tiene nada en la ubicación que usted sondeó. Esta página se enfoca puramente en diagnosticar el caso 02: qué está diciendo en realidad el dispositivo, los errores de direccionamiento que lo producen, y por qué es un error tan útil de recibir.
Excepción de dirección de datos ilegal Modbus en una línea: La excepción Modbus código 02, dirección de datos ilegal, es una respuesta que un esclavo envía cuando acepta el formato de la petición pero la dirección de registro o bobina que usted pidió no está presente en su mapa de memoria. Confirma que el dispositivo está vivo y comunicándose y estrecha la falla a la dirección misma - un desplazamiento equivocado, un registro fuera del rango válido del dispositivo, o un código de función apuntado a la tabla equivocada.
Una respuesta, no silencio - y qué le dice eso
Lo más importante de la excepción 02 es que es una respuesta. El dispositivo recibió su petición, la entendió lo bastante bien para procesarla, y a propósito envió de vuelta un error diciendo que la dirección solicitada está fuera de límites. Eso descarta de inmediato toda una categoría de problemas: el cableado está bien, el dispositivo tiene energía, los ajustes seriales coinciden, el unit ID es correcto, y el maestro le habla al dispositivo correcto. Si cualquiera de esos estuviera roto usted obtendría un tiempo agotado, no una excepción. Obtener una excepción significa que la conversación funciona; solo el contenido de la petición está mal.
Así que la excepción 02 es una de las fallas más bienvenidas de encontrar, porque apunta directo a la dirección. El dispositivo esencialmente le entrega el diagnóstico: estoy aquí, lo escuché, y no tengo nada en esa ubicación. Eso estrecha la búsqueda de forma drástica comparado con un tiempo agotado, donde el dispositivo podría estar callado por una docena de razones distintas. Con una 02, la solución casi siempre vive en la configuración del punto - el número de registro que usted le dijo al maestro que sondeara - en lugar de en cualquier parte de la capa física o serial.
Los errores de direccionamiento que la causan
El culpable clásico es un corrimiento por uno del desplazamiento de numeración de registros. La documentación muchas veces lista los registros de retención en la convención 4xxxx, donde 40001 se refiere al registro que el protocolo en realidad direcciona como 0. Mezcle los dos estilos de numeración - sondeando la dirección del cable como si fuera el número de la documentación, o viceversa - y usted aterriza una posición corrido o muy afuera del mapa, y el dispositivo responde 02. Cualquier mapa de tags construido transcribiendo a mano una tabla de registros del fabricante es candidato a exactamente este resbalón.
Las otras causas comunes están igual de enfocadas en la dirección. Sondear un registro más allá del rango real del dispositivo - pedir un conteo de registros que se corre más allá del final de un bloque válido, o leer un punto que simplemente no está implementado en ese modelo o firmware - produce 02. También lo hace usar el código de función equivocado para el dato que usted quiere, ya que los registros de retención, los registros de entrada, las bobinas y las entradas discretas son espacios de direcciones separados; una lectura apuntada a la tabla de bobinas para algo que solo existe como registro de retención aterriza en la nada. Y leer a través de un hueco - un bloque que se corre más allá del final de un rango contiguo hacia territorio no mapeado - también lo dispara. En cada caso la solución es conciliar la dirección, el conteo y el código de función sondeados contra el mapa de registros real del dispositivo, no tocar el cableado ni los ajustes seriales.
Diagnosticar 02 frente a un tiempo agotado en el SCADA
El valor práctico de la excepción 02 en las operaciones del día a día es que separa limpiamente un error de direccionamiento de un error de conectividad. Un tiempo agotado dice que el intercambio nunca se completó y lo manda a cazar por cableado, energía, ID y ajustes seriales. Una 02 dice que el intercambio se completó y la petición misma estaba mal, así que usted va directo a la configuración del punto. Tratar esos dos síntomas de forma distinta ahorra mucha resolución de problemas desperdiciada, y el peor desenlace es un sistema que los agrupa juntos como una falla de comunicación genérica y oculta cuál tiene usted en realidad.
Aquí es donde hacer aflorar la excepción específica importa. Ayuda a un técnico cuando la plataforma registra no solo que un sondeo falló sino que falló con dirección de datos ilegal en un tag nombrado, porque eso convierte una falla vaga en un señalamiento preciso: este registro en particular está mal configurado mientras cada otro punto del mismo dispositivo lee bien. Una plataforma SCADA en la nube como Merobix sondea dispositivos por Modbus y puede reportar la excepción exacta devuelta, así que un código 02 aparece como un problema de direccionamiento en un tag específico en lugar de mezclarse en el mismo cubo que un enlace muerto. Eso permite a quien construyó el mapa de tags arreglar el desplazamiento o el código de función directamente, y confirmar la solución en el momento en que la excepción se detiene.
Preguntas frecuentes
¿Qué significa en realidad el código de excepción Modbus 02?
Significa dirección de datos ilegal - el esclavo aceptó y entendió su petición pero el registro o bobina que usted pidió no está presente en su mapa de memoria. Como el dispositivo respondió del todo, confirma que el enlace, la energía, el unit ID y los ajustes seriales están bien, y la falla está en la dirección que usted sondeó. Es un puntero dirigido a un error de configuración en lugar de una falla de conectividad.
¿Por qué obtengo la excepción 02 en un registro pero otros leen bien?
Porque la falla es específica de esa dirección, no del dispositivo. La causa más común es un corrimiento por uno del desplazamiento de numeración 40001, pero también puede ser un registro más allá del rango válido del dispositivo, un punto no implementado en ese modelo, o el código de función equivocado apuntado a la tabla de direcciones equivocada. Concilie la dirección, el conteo y el código de función de ese único tag contra el mapa de registros del dispositivo.
¿En qué difiere la excepción 02 de un tiempo agotado Modbus?
Un tiempo agotado significa que no llegó respuesta alguna, así que el problema está en la conectividad - cableado, energía, unit ID o ajustes seriales. La excepción 02 significa que el dispositivo sí respondió, rechazando la petición porque la dirección no existe, así que el problema está en la petición misma. Obtener una excepción prueba que el enlace funciona y lo manda directo a la configuración del punto.
Servicios de automatización
¿Necesita convertir esta información en un sistema que funcione?
Merobix integra SCADA, programa PLC Allen-Bradley y Siemens, y diseña y fabrica tableros de control industrial.
Las solicitudes de reunión se revisan antes de confirmarse.