6. Comprobación CRC
El código de calculo de CRC se muestra abajo:
unsigned int crc_check(unsigned char*data,unsigned char length)
{
int i;
unsigned crc_result=0xffff;
while(length--)
{
crc_result^=*data++;
for(i=0;i<8;i++)
{
}
}
return (crc_result=((crc_result=&0xff)<<8)|(crc_result>>8));
}
7. Casos de aplicación
Notas: Verifica que todos los aparatos de hardware están conectados correctamente antes de controlar el convertidor
mediante la comunicación externa. Además, es necesario establecer el formato de comunicación de datos, la tasa de
baudio y la dirección de comunicación.
1. Para leer la trama de solicitud de la frecuencia máxima de salida del esclavo 2 (leer F00.06), respuesta
50.00Hz.
Trama de
Dirección
solicitud
0x02
Trama de
Dirección
respuesta
0x02
2. Para leer la tensión del bus CC del esclavo 2 (leer el parámetro del estado), respuesta 537V.
Trama de
Dirección
solicitud
0x02
Trama de
Dirección
respuesta
0x02
if(crc_result&0x01)
crc_result=(crc_result>>1)^0xa001;
else
crc_result=crc_result>>1;
Código
Dirección de registro
0x03
0x00
Código
Byte de respuesta
0x03
0x02
Código
Dirección de registro
0x03
0x33
Código
Byte de respuesta
0x03
0x02
Número de lectura
0x06
0x00
Contenido del registro
0x13
Número de lectura
0x19
0x00
Contenido del registro
0x02
Suma de comprobación
0x01
0x64
Suma de comprobación
0x88
0xF1
Suma de comprobación
0x01
0x5A
Suma de comprobación
0x19
0x3C
0x38
0x12
0xBA
0xEE
169