Programma di calcolo CRC (C language):
UWORD ch_sum (UBYTE long, UBYTE *rxdbuff )
{
BYTE i = 0;
UWORD wkg = 0xFFFF;
while ( long-- ) {
wkg ^= rxdbuff++;
for ( i = 0 ; i < 8; i++ ) {
if ( wkg & 0x0001 ) {
wkg = ( wkg >> 1 ) ^ 0xa001;
}
else {
wkg = wkg >> 1;
}
}
}
return( wkg );
}
Codice d’errore
ASCII Mode RTU Mode
STX ‘:’ Node Address 02H
Address
‘0’ Function 83H
‘1’ Exception code 52H
Function
‘8’
CRC-16
High C0H
‘6’ Low CDH
Exception code
‘5’
‘1’
LRC Check
‘2’
‘8’
END
‘CR’
‘LF’
QuandosivericaunerroredicomunicazioneildrivetrasmetteunExceptionCodeeritornaalsistemadicon-
trollo principale il Function Code “ANDED (and 80h)” con 80 Hex.
Codice eccezione Contenuto
01 Errore codice funzione
02 Errore numero registro
03 Errore impostazione DATI
04 Numero registro supera 32
VDI100 • Instruction manual 23