Anexo
B.6 Cálculo CRC
La última condición se basa en lo siguiente:
Sólo se comprueba el valor de flujo transmitido internamente. La velocidad de transmisión
esperada se lee durante el encendido. Si no se recibe la transmisión después de 10 veces
el valor esperado, la velocidad de transmisión es leída nuevamente desde el módulo (podría
haber cambiado). Si dicha velocidad no ha cambiado (y la velocidad no es cero), el
indicador Run se ajusta a OFF. Si la recepción de un valor (flujo) se da en 10 veces como el
valor definido entonces el indicador Run se ajusta de nuevo a TRUE.
B.6
Cálculo CRC
El campo de comprobación de redundancia cíclica (CRC) tiene dos bytes y contiene un
valor binario de 16 bits. El valor del CRC se genera en un principio mediante el dispositivo
de transmisión que adjunta el CRC al mensaje. El dispositivo de recepción vuelve a calcular
un CRC durante la recepción del mensaje y compara el valor calculado con el valor actual
que ha recibido en el campo del CRC. Si los dos valores no son iguales, se produce un
error.
A continuación se incluye un breve texto descriptivo sobre cómo se calcula el CRC. A
continuación esta descripción se complementa con un ejemplo de programación en C.
Cálculo CRC
1. Cargue un registro de 16 bits con FFFF hex (todos 1s). Llame a esto el registro CRC.
2. Exclusivo O el primer byte de 8 bits del mensaje con el byte de bajo orden del registro
3. Cambie el registro CRC un bit a la derecha (hacia el LSB), rellenando con ceros el MSB.
4. (si el LSB era 0): Repita el paso 3 (otro cambio). (si el LSB era 1): Exclusivo O el registro
5. Repita los pasos 3 y 4 hasta que se hayan realizado 8 cambios. Una vez realizada esta
6. byte completo de 8 bits.
7. Repita los pasos 2 a 5 para el siguiente byte de 8 bits del mensaje. Continúe haciendo
8. El contenido final del registro CRC es el valor CRC.
9. Una vez que el CRC está colocado en el mensaje, los bytes inferior y superior deben
Colocación del CRC en el mensaje
Cuando el CRC de 16 bits (dos bytes de 8 bits) se transmite al mensaje, el byte de bajo
orden se transmite primero, seguido del byte de orden alto.
70
CRC de 16 bits, colocando el resultado en el registro CRC.
Extraiga y examine el LSB.
CRC con el valor polinómico 0xA001 (1010 0000 0000 0001).
operación, se habrá procesado un
esto hasta que se hayan procesado todos los bytes.
barrerse tal como se describe a continuación.
Instrucciones de servicio, 06/2010, A5E03089278-01
Modbus RTU RS485