17: I
NSTRUCCIONES DE COMUNICACIÓN DEL USUARIO
Ejemplos de cálculo BCC
Los m ódulos de la CPU FC5A MicroSmart pueden usar tres nuevas fórmulas de cálculo BCC de ADD-2comp, Modbus
ASCII y Modbus RTU para las instrucciones de transmisión TXD1 y TXD2 e instrucciones de recepción RXD1 y RXD2.
Estos caracteres de comporobación de bloque se calculan de la siguiente forma.
ADD-2comp
Añade los caracteres en el intervalo desde la posición de inicio de cálculo BCC al byte inmediatamente precedente de
BCC, luego invierte el resultado bit a bit y añade 1.
1. Añade los caracteres en el intervalo desde la posición inicial de cálculo BCC al byte inmediatemente antes del BCC.
2. Invierte el resultado bit a bit, y añade 1 (segundo complemento).
3. Almacena el resultado en la posición BCC según el tipo de conversión designada (Binario a ASCII o Sin conversión)
y la cantidad designada de dígitos BCC.
Ejemplo: Conversión Binario a ASCII, 2 dígitos BCC
Cuando el resultado del paso 2 es 175h, el BCC consistirá en 37h, 35h.
Modbus ASCII — Cálculo de la LRC (control de redundancia longitudinal)
Calcula el BCC usando LRC (comprobación de redundancia longitudinal) para el intervalo desde la posición de inicio del
cálculo BCC al byte inmediatamente anterior al BCC.
1. Convierte los caracteres ASCII en el intervalo desde la posición inicial de cálculo BCC al byte inmediatemente antes
del 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).
Si el intervalo de cálculo BCC consta de un número impar de bytes, los resultados del cálculo BCC son un valor
indefinido. El protocolo Modbus define que el intervalo de cálculo BCC es un número par de bytes.
Modbus RTU — Cálculo de CRC-16 (suma de somprobación de redundancia cíclica)
Calcula el BCC usando CRC-16 (suma de comprobación de redundancia cíclica) para el intervalo desde la posición de
inicio del cálculo BCC al byte inmediatamente anterior al BCC. El polinomio de generación es: X
1. Tome el vor exclsuivo OR (XOR) de FFFFh y el primer dato de 1 byte en la posición inicial de cálculo BCC.
2. Desplace el resultado 1 bit a la derecha. Si se produce un arrastre, tome el valor exclsuivo 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 exclsuivo 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)
17-36
M
M
ANUAL DEL USUARIO DE
S
FC5A
ICRO
MART
16
15
2
+ X
+ X
+ 1.