Data Frame per modalità RTU
Il MASTER (PLC ecc.) trasmette il comando allo SLAVE e lo SLAVE risponde. Il frame dati di ricezione è
il seguente. La lunghezza dei dati è diversa da comando a comando.
Node Address
Function Code
DATA
CRC CHECK
Signal Interval
** L’intervallo fra il comando di trasmissione e quello di risposta è di 10 mS.
Indirizzo del nodo (Node Address)
00H: trasmissione a tutti i drive
01H: al drive n. 1
0FH: al drive n. 15
10H: al drive n. 16 ecc...., max al drive n. 254 (FEH)
Codice funzione (Function Code)
03H: Legge i contenuti del registro
06H: scrittura di una WORD da registrare
08H: Test loop
10H: scrittura di diversi dati da registrare (scrittura/registrazione numero complesso)
Calcolo checksum (Checksum Calculation)
LRC
ex. NODE ADDRESS 01H
FUNCTION 03H
COMMAND 01H
00H
+ DATA LENGTH 0AH
------------------------------------------
0FH ------------ 2’s complement
Checksum F1H
CS (H) 46H (ASCII)
CS (L) = 31H (ASCII)
CRC
Controllo CRC Il codice CRC copre il contenuto dall’indirizzo slave a DATA. Calcolarlo secondo i metodi se-
guenti.
(1) Caricare un registro da 16 bit con un valore esadecimale FFFF (tutti 1). Chiamarlo registro CRC.
(2) Effettuare il calcolo OR esclusivo sul primo byte da 8 bit del messaggio con il byte di ordine basso del regi-
stro CRC da 16 bit, inserendo il risultato nel registro CRC.
(3) Spostare il bit 1 del registro CRC a destra (verso LSB) e porre a zero MSB, estrarre ed esaminare LSB.
(4) (Se LSB era 0): Ripetere le operazioni (3) (un altro spostamento)
(Se LSB era 1): Operazione OR sul registro CRC con il valore polinomio A001 (1010 0000 0000 0001), inse-
rendo il risultato nel registro CRC.
(5)Ripetereleoperazioni(3)e(4)nchénonsonostatieffettuati8spostamenti.Altermine,verràelaboratoun
byte completo da 8 bit.
(6) Ripetere le operazioni dalla (2) alla (5) per il byte da 8 bit del messaggio successivo. Continuare questo
procedimentonoaquandotuttiibytesarannoelaborati.IlcontenutonaledelregistroCRCcorrisponderà
al valore CRC. Quando viene trasmesso il valore CRC, dovrebbe essere trasmesso prima il byte di ordine
basso e poi il byte di ordine alto. Per esempio, valore CRC: 124 esadecimale, il byte di ordine alto dovrebbe
essere impostato su 41 esadecimale e il byte di ordine basso su 12 esadecimale.
22 VDI100 • Instruction manual