LRC y CRC
El modo ASCII usa los códigos de comprobación LRC y el modo RTU usa los códigos de comprobación CRC.
• Modo Modbus ASCII — Cálculo de la LRC (control de redundancia longitudinal)
Calcula el BCC usando LRC para el intervalo desde el número de la secundaria hasta el byte inmediatamente anterior al
BCC.
1. Convierte los caracteres ASCII en el intervalo desde el
BCC, en unidades de dos caracteres, para realizar datos hexadecimales de 1 byte. (Ejemplo: 37h, 35h → 75h)
2. Añade los resultados del paso 1.
3. Invierte el resultado bit a bit, y añade 1 (segundo complemento).
4. Convierte el datos de 1 byte menor en caracteres ASCII. (Ejemplo: 75h → 37h, 35h)
5. Almacena los dos dígitos en la posición BCC (LRC).
• Modo Modbus RTU — Cálculo de CRC-16 (suma de comprobación de redundancia cíclica)
Calcula el BCC usando CRC-16 para el intervalo desde el número de la secundaria hasta el byte inmediatamente anterior
al BCC. El polinomio de generación es: X
1. Tome el valor exclusivo OR (XOR) de FFFFh y el primer dato de 1 byte en el
2. Desplace el resultado 1 bit a la derecha. Si se produce un arrastre, tome el valor exclusivo de OR (XOR) de A001h,
luego vaya al paso 3.
Si no es así vaya directamente al paso 3.
3. Repita el paso 2, desplazando 8 veces.
4. Tome el valor exclusivo OR (XOR) del resultado y el siguiente dato de 1 byte.
5. Repita el paso 2 al 4 hasta el byte inmediatamente anterior al BCC.
6. Intercambie los bytes mayor y menor del resultado del paso 5 y guarde el CRC-16 resultante en la posición BCC
(CRC). (Ejemplo: 1234h → 34h, 12h)
número de secundaria al byte inmediatamente antes del
16
15
2
+ X
+ X
+ 1.
M
M
ANUAL DEL USUARIO DE
30: C
número de secundaria .
S
FC5A
ICRO
MART
M
OMUNICACIÓN
ODBUS
30-13