Códigos de error Modbus

Antes de entrar en los códigos de error que puede devolver un esclavo Modbus contemplemos todos los contextos de comunicación:

  • Respuesta correspondiente a la petición por parte del master con normalidad.
  • El Slave Modbus no recibe la trama procedente del master y en consecuencia no existe respuesta.
  • El Slave Modbus detecta un error de CRC en la petición del master (por interferencia o mala formación) y tampoco realiza ninguna respuesta.
  • El esclavo recibe correctamente y sin malformación el paquete enviado por el master Modbus pero por alguna razón no puede completar la función pertinente. En este caso devolverá uno de los siguientes códigos de error en el campo de datos y aplicará una máscara con valor 0x80 en el campo de función.

Los códigos de error explicados en la especificación Modbus son los siguientes:

Código Significado Descripción
0x01 Función Ilegal El código de función recibido en la consulta no es una acción permitida para el esclavo. Esto puede deberse a que el código de función sólo se aplica a los dispositivos más nuevos, y no fue implementado en la unidad seleccionada. También podría indicar que el esclavo se encuentra en un estado incorrecto para procesar una solicitud de este tipo, por ejemplo, porque está sin configurar y se le pide que devuelva valores de registro.
0x02 Dirección de datos no válido La dirección de datos recibida en la consulta no es una dirección permitida para el esclavo. Más específicamente, la combinación de número de referencia y la longitud de transferencia no es válida. Para un controlador con 100 registros, una solicitud con un desplazamiento 96 y una longitud 4 tendría éxito, una solicitud con un desplazamiento 96 y una longitud 5 generará un código de error de este tipo.
0x03 Datos con valor no válido Un valor contenido en el campo de datos no está permitido por el dispositivo esclavo. Esto indica un fallo en la estructura de los datos como por ejemplo que la longitud implicada es incorrecta. En concreto, no quiere decir que un elemento de datos enviado tiene un valor que no corresponde ya que el protocolo MODBUS no fija el formato o el tipo de dato de un registro particular.
0x04 Fallo en el dispositivo esclavo Ha sucedido un error interno e irrecuperable mientras el esclavo intentaba realizar la acción solicitada.
0x05 Ack El esclavo ha aceptado la solicitud y la está procesando, pero un largo periodo de tiempo se necesitará para hacerlo. Esta respuesta se devuelve para evitar un error de tiempo de espera que se produzcan en el maestro. El maestro siguiente puede emitir un mensaje Program encuesta completa para determinar si el proceso se ha completado.
0x06 Dispositivo esclavo ocupado El esclavo se dedica a procesar un comando de programa de larga duración. El maestro debería retransmitir el mensaje más tarde, cuando el esclavo esté libre .
0x07 Nack El esclavo no puede realizar la función recibida. Este código se devuelve para una solicitud de programación sin éxito utilizando el código de función 13 o 14. El dispositivo master debería solicitar información de diagnóstico.
0x08 Error de paridad en memoria Utilización especial junto con los códigos de función 20 y 21 y el tipo de referencia 6, para indicar que el área del archivo extendido no pudo aprobar una comprobación de coherencia.
El esclavo intentó leer la memoria extendida o un archivo de registro, pero detecta un error de paridad en la memoria. El maestro puede volver a intentar la solicitud, pero el servicio puede ser requerido en el dispositivo esclavo.
0x0A Puerta de enlace Ruta No disponible Utilización especial en conexión con puertas de enlace, indica que la puerta de enlace no pudo asignar una ruta de comunicación interna del puerto de entrada al puerto de salida para el procesamiento de la solicitud. Indica que la pasarela está mal configurada o sobrecargada.
0x0B Dispositivo de puerta de enlace de destino no respondió Utilización especial en conexión con puertas de enlace, indica que no se obtuvo respuesta desde el dispositivo de destino. Por lo general, significa que el dispositivo no está presente en la red.
Tagged with: , , , , , , ,
Posted in Blog Técnico, Hardware Firmware, ModBUS

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*


*

enlaces patrocinados