7. REGISTROS MODBUS
ES
PROTOCOLO DE COMUNICACIONES DEL REGULADOR CONTROL CAD-REG
El protocolo empleado es MODBUS modo RTU con las siguientes características: RS-485 (2 wire). Número máximo de
elementos en el bus: 32 (1 maestro + 31 esclavos).
• Velocidad de comunicación: 9600 baudios.
• Formato de datos:
− 8 bits.
− Sin paridad.
− 1 bit de stop.
• Registros de 16 bits (2 bytes).
Formato de variables: High Word First [H/L].
• CRC según polinomio x16 + x15 + x2 + 1.
Nota: Es recomendable realizar reintentos en las comunicaciones. Timeout: 1 seg.
Nota: Mínimo tiempo Wait To Send recomendado: 100 ms.
LECTURA DE REGISTROS
Para la lectura de registros es posible utilizar los códigos de comando 3 ó 4 con la siguiente estructura de mensaje:
Nº esclavo (1 byte) – Código (03 ó 04) (1 byte) – Dirección del 1er registro a leer (00-XX) (2 bytes) – Nº de registros
a leer (00-YY) (2 bytes) – CRC16 (2 bytes)
Nº máximo de registros a leer en el mismo mensaje = 32 (del registro 0 al registro 31)
La contestación del regulador tiene la siguiente estructura de mensaje:
Nº esclavo (1 byte) – Código (03 ó 04) (1 byte) – Nº de bytes de datos (XX) (1 byte) – Datos (AA-BB-CC-DD...) (2
bytes para cada registro) – CRC16 (2 bytes)
Nº de bytes de datos = 2 * Nº de registros a leer
ESCRITURA DE REGISTROS
Para la escritura de registros se utiliza el código de comando 6 con la siguiente estructura de mensaje:
Nº esclavo (1 byte) – Código (06) (1 byte) – Dirección del registro a escribir (00-XX) (2 bytes) – Dato a escribir en
el registro (AA-BB) (2 bytes) – CRC16 (2 bytes)
La contestación del regulador tiene la siguiente estructura de mensaje:
Nº esclavo (1 byte) – Código (06) (1 byte) – Dirección del registro escrito (00-XX) (2 bytes) – Dato escrito en el
registro (AA-BB) (2 bytes) – CRC16 (2 bytes)
ERRORES
Si se utiliza un código diferente al de lectura o escritura indicado, la respuesta que se recibe es:
Nº esclavo – Código OR 80Hex – Código de error (1) – CRC16 (2 bytes)
Si se intenta acceder en lectura o escritura a un registro con una dirección inexistente, la respuesta que se recibe es:
Nº esclavo – Código OR 80Hex – Código de error (2) – CRC16 (2 bytes)
Si se intenta escribir en un registro de sólo lectura o se intenta escribir un valor ilegal en un registro, la respuesta que
se recibe es:
Nº esclavo – Código OR 80Hex – Código de error (3) – CRC16 (2 bytes)
MAPA DE REGISTROS
Los bits no utilizados de los siguientes registros son 0.
Nota: En algunos programas de comunicaciones la primera dirección de palabra es confi gurada como 400001, con lo
que el registro 0 del regulador corresponde a la dirección de palabra 400001. En resumen, la dirección de palabra a la
que corresponde cada registro del regulador se calcula sumando 1 al número de registro del mapa de registros descrito
a continuación.
14