Apéndice K: Introducción a comunicaciones seriales
Introducción al protocolo MODBUS RTU
El protocolo MODBUS RTU (Remote Terminal Unit) es una estructura de mensaje usada para
1
establecer comunicaciones maestras a esclavos entre aparatos inteligentes. Cuando un maestro
MODBUS envía un mensaje a un esclavo MODBUS, el mensaje contiene la dirección del
2
esclavo, una función, los datos y una cifra de verificación de que el mensaje fue correctamente
transmitido llamado checksum. La respuesta del esclavo contiene campos confirmando la
3
requisición del maestro, cualquier dato pedido y el campo de verificación de error.
Una estructura de mensaje consiste de los siguientes campos:
K
Dirección del esclavo Función Datos Checksum
El campo de dirección de un mensaje contiene ocho bits. Las direcciones válidas de esclavos
5
están en el rango 0-247 decimal (la dirección 0 es la transmisión "broadcast" , es decir, una
transmisión a todos los esclavos) tanto los aparatos individuales esclavos se colocan en el rango
de 1-247 decimal. El maestro especifica un esclavo colocando la dirección del esclavo en el
6
campo de dirección del Mensaje. Cuando el esclavo responde, coloca su propia dirección en el
campo de dirección para identificar al maestro qué esclavo está respondiendo.
7
El campo de función es un mensaje que contiene ocho bits. Los códigos de función válidos están
en el rango de 1-255 decimal. El código de función instruye al esclavo hacer una clase de
8
acción. Algunos ejemplos son leer el estado de un grupo de entradas discretas; leer los datos en
un grupo de memorias; escribir el estado a una bobina de salida o a un grupo de memorias o leer
el estado de diagnóstico de un esclavo. En la nomenclatura de MODBUS a las memorias se le
9
dicen registros.
Cuando un esclavo responde al maestro, usa el campo de código de función para indicar que
10
tiene una respuesta normal o que ha ocurrido un tipo de error. En una respuesta normal, el
esclavo entrega como eco el mismo código de función original. Si hay una condición de error,
11
el esclavo responde como eco el código de función original con el bit más significativo colocado
como un valor 1.
El campo de datos es construido usando conjunto de 2 dígitos hexadecimales en el rango de 00
12
hasta FF. De acuerdo al modo de transmisión serial de la red, estos dígitos pueden ser un par de
caracteres ASCII o caracteres RTU. El campo de datos también contiene información adicional
13
que los esclavos usan para ejecutar la acción definida por el código de función. Esto puede
incluir direcciones internas, cantidad de items a ser transferidos, etc.
14
El campo de datos de una respuesta desde un esclavo a un maestro contiene los datos pedidos
si no ocurre un error. Si ocurre un error, el campo contiene un código de excepción que el
maestro usa para determinar la próxima acción a ser tomada. Puede ser que no exista el campo
A
de datos en ciertos tipos de mensajes.
El campo de CHECKSUM (examen de verificación de error) es usado para verificación de
B
errores. Las redes seriales normales usan dos tipos de verificación de error.
Verificación de Parity (paridad) EVEN or ODD (par o impar, en inglés, respectivamente) y
C
este valor totaliza la cantidad de bits colocados como 1 en el campo de datos y coloca el tipo de
paridad en 0 o 1 representando un total par o impar de bits lógicos 1.
D
Cyclical Redundancy Check CRC (Verificación de redundancia) verifica el mensaje completo
y es aplicado sin importar el método de paridad usado. El campo CRC se consiste de 2 bytes,
K–30
Manual del PLC DL06, 2a. edición en español, 6/07