Integración del sistema
el dispositivo receptor descarta el mensaje incompleto y
asume que el siguiente byte es el campo de dirección de
un nuevo mensaje. De forma similar, si un nuevo mensaje
comienza antes de 3,5 intervalos de carácter tras un
mensaje previo, el dispositivo receptor lo considerará una
continuación del mensaje anterior. Esto produce un error
de tiempo límite (falta de respuesta por parte del esclavo),
porque el valor del campo CRC final no es válido para los
mensaje combinados.
3.9.10.4 Campo de dirección
El campo de dirección de un mensaje contiene 8 bits. Las
direcciones válidas de dispositivos esclavos están en el
rango de 0 a 247 decimal. Los dispositivos esclavos indivi-
duales tienen direcciones asignadas en un rango entre 1 y
247 (0 se reserva para el modo de transmisión, que
reconocen todos los esclavos). Un maestro se dirige a un
esclavo poniendo la dirección de este en el campo de
dirección del mensaje. Cuando el esclavo envía su
respuesta, pone su propia dirección en dicho campo de
dirección, para que el maestro sepa qué esclavo le está
contestando.
3.9.10.5 Campo de función
El campo de función de un mensaje contiene 8 bits. Los
códigos válidos están en el rango de 1 a FF. Los campos
de función se utilizan para enviar mensajes entre el
maestro y el esclavo. Cuando se envía un mensaje desde
un maestro a un dispositivo esclavo, el campo de código
de función le indica al esclavo la clase de acción que debe
realizar. Cuando el esclavo responde al maestro, utiliza el
campo de código de función para indicar una respuesta
normal (sin error) o que se ha producido un error de
alguna clase (esta respuesta se denomina «excepción»).
Para dar una respuesta normal, el esclavo simplemente
devuelve el código de función original. Para responder con
una excepción, el esclavo devuelve un código equivalente
al de la función original, pero con su bit más significativo
cambiado a 1 lógico. Además, el esclavo pone un código
único en el campo de datos del mensaje de respuesta. Este
código le indica al maestro el tipo de error producido o la
razón de la excepción. Consulte también el
capétulo 3.9.10.10 Códigos de función admitidos por Modbus
RTU y el capétulo 3.9.10.11 Códigos de excepción Modbus.
3.9.10.6 Campo de datos
El campo de datos se construye utilizando grupos de dos
dígitos hexadecimales, en el intervalo de 00 a FF en
hexadecimal. Están hechos con un carácter RTU. El campo
de datos de los mensajes enviados desde un maestro a un
dispositivo esclavo contiene información más detallada que
el esclavo debe utilizar para realizar la acción definida por
el código de función. Este puede incluir elementos tales
como direcciones de registro o bobinas, la cantidad de
MG16G205
Guía de diseño
elementos que se manejarán y el contador de los bytes de
datos reales del campo.
3.9.10.7 Campo de comprobación CRC
En los mensajes se incluye un campo de comprobación de
errores, que opera en base al método de comprobación de
redundancia cíclica (CRC). El campo CRC comprueba el
contenido de todo el mensaje. Se aplica independien-
temente del método de comprobación de paridad utilizado
para los caracteres individuales del mensaje. El dispositivo
transmisor calcula el valor de CRC y lo añade como último
campo en el mensaje. El dispositivo receptor vuelve a
calcular un CRC durante la recepción del mensaje y
compara el valor calculado con el valor recibido en el
campo CRC. Si los dos valores son distintos, se produce un
error de tiempo límite de bus. El campo de comprobación
de errores contiene un valor binario de 16 bits
implementado como dos bytes de 8 bits. Cuando esto se
ha realizado, el byte de orden bajo del campo se añade
primero, seguido del byte de orden alto. El byte de orden
alto del CRC es el último byte que se envía en el mensaje.
3.9.10.8 Direccionamiento de bobinas
En Modbus, todos los datos están organizados en bobinas
y registros de retención. Las bobinas almacenan un solo
bit, mientras que los registros de retención alojan un
código de 2 bytes (16 bits). Todas las direcciones de datos
de los mensajes Modbus están referenciadas a cero. La
primera aparición de un elemento de datos se gestiona
como elemento número cero. Por ejemplo: la bobina
conocida como bobina 1 de un controlador programable se
trata como el campo de dirección de un mensaje Modbus.
La Bobina 127 decimal se trata como bobina 007EHEX (126
decimal).
El registro de retención 40001 se trata como registro 0000 en
el campo de dirección del mensaje. El campo de código de
función ya especifica una operación de registro de
retención. Por lo tanto, la referencia 4XXXX es implícita. El
registro de retención 40108 se procesa como un registro
006BHEX (107 decimal).
Danfoss A/S © 08/2015 Reservados todos los derechos.
3
3
83