Datos
Configurar los datos en forma consecutiva combinando las direcciones de los registros de almacenamiento (código
de prueba para direcciones de lazo cerrado) y los datos que contiene el registro. El tamaño de los datos varia
dependiendo de los detalles del comando.
Prueba de errores
Los errores son detectados durante la comunicación usando CRC-16. Realice los cálculos usando el siguiente
método:
1. La configuración de fábrica de la comunicaron para el CRC-16 es típicamente cero, pero cuando se use el
sistema Modbus, configure los valores de fábrica es uno (ejemplo: configure los 16 bits a 1).
2. Calcule CRC-16 usando el MSB como dirección de esclavo LSB, y LSB como MSB al final del dato.
3. Calcule CRC-16 para los mensajes de respuesta desde los esclavos, y compárelos con los CRC-16 en la
respuesta de mensaje.
CRC-16
Al final del mensaje, Los datos para el chequeo de errores de CRC es enviado para detectar errores en la
transmisión de señales. En Modbus RTU, la comprobación de errores se lleva a cabo en la forma de CRC-16
(Chequeo Cíclico de Redundancia). El campo CRC comprueba el contenido del mensaje entero. Esto es aplicado a
pesar de cualquier método de chequeo de paridad para los caracteres individuales del mensaje.
El campo CRC es de 2 bytes, conteniendo valores binarios de 16-bit. El valor del CRC es calculado por el
dispositivo de transmisión, el cual adjunta el CRC al mensaje. El dispositivo de recepción recalcula el 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 ocurre un error.
El CRC es iniciado, primero, por una precarga de los todos los registros de 16-bit a 1. Luego, un proceso
comienza aplicando bytes sucesivos de 8-bit del mensaje a los contenidos actuales del registro. Los bits de inicio,
paro y el bit de paridad (si alguno es usado) no son aplican para el CRC.
Durante la generación del CRC, con cada carácter de 8-bit se hace un O excluyente con el contenido del registro.
Luego el contenido es cambiado en la dirección del bit menos significativo (LSB), con un cero en la posición del bit
mas significativo (MSB). El LSB es extraído y examinado. Si el LSB es 1, entonces se haces exclusivamente un O
entre el registro y un valor de preseleccionado (A001h). Si el LSB es un 0, no se se hace un O excluyente.
Este proceso es repetido hasta que los 8 cambios sean realizados. Después del último (octavo)cambio, el siguiente
byte de 8-bit hace una O con el valor actual del registro, y el proceso se repite por 8 cambios mas como es
descrito arriba. El contenido final del registro, después de que todos los bytes del mensaje fueron aplicados, es el
valor CRC.
Para las aplicaciones con una computadora como Host, se muestran ejemplos detallados de una generación de
CRC usando Quick Basic y C en las siguientes páginas.
6
Comunicaciones D-