Doc. AHIT102A1102.doc Date: 28/09/2006 P. 7 / 18
PROTOCOLLO MODBUS® ASCII
Il protocollo Modbus® ASCII viene utilizzato
normalmente nelle applicazioni che richiedono di
comunicare via modem.
Le funzioni e gli indirizzi disponibili sono gli stessi
della versione RTU, ma i caratteri trasmessi sono in
ASCII e la terminazione del messaggio non e’
effettuata a tempo ma con dei caratteri di ritorno a
capo.
Se si seleziona il parametro P.51 e/o P.56 come
protocollo Modbus® ASCII, la struttura del
messaggio di comunicazione sulla relativa porta di
comunicazione è così costituita:
:
Indirizzo
2 chars
Funzione
2 chars
Dati
(N chars)
LRC
2 chars
CR
LF
•
Il campo Indirizzo contiene l’indirizzo dello
strumento slave cui il messaggio viene inviato.
•
Il campo Funzione contiene il codice della funzione
che deve essere eseguita dallo slave.
•
Il campo Dati contiene i dati inviati allo slave o
quelli inviati dallo slave come risposta ad una
domanda. La massima lunghezza consentita e’ di 32
registri consecutivi.
•
Il campo LRC consente sia al master che allo
slave di verificare se ci sono errori di trasmissione.
Questo consente, in caso di disturbo sulla linea di
trasmissione, di ignorare il messaggio inviato per
evitare problemi sia dal lato master che slave.
•
Il messaggio termina sempre con i caratteri di
controllo CRLF (0D 0A).
Esempio:
Per esempio, se si vuole leggere dalla DCRJ con
indirizzo 8 il valore della tensione concatenata
equivalente che si trova alla locazione 04 (04 Hex), il
messaggio da spedire è il seguente:
: 08 04 00 03 00 02 EF CRLF
Dove:
: = ASCII 3Ah = Delimitatore inizio messaggio
08 = indirizzo slave.
04 = funzione di lettura locazione.
00 03 = indirizzo della locazione diminuito di un’unità,
contenente il valore di tensione concatenata
equivalente.
00 02 = numero di registri da leggere a partire
dall’indirizzo 04.
EF = checksum LRC.
CRLF = ASCII 0Dh 0Ah = delimitatore fine
messaggio
La risposta della DCRJ è la seguente:
: 08 04 04 00 00 01 A0 4F
CR
LF
Dove:
: = ASCII 3Ah = Delimitatore inizio messaggio
08 = indirizzo della DCRJ (Slave 08).
04 = funzione richiesta dal Master.
04 = numero di byte inviati dallo slave.
00 00 01 A0 = valore esadecimale della tensione
concatenata = 416 V.
4F = checksum LRC.
CRLF = ASCII 0Dh 0Ah = delimitatore fine
messaggio
MODBUS® ASCII PROTOCOL
The Modbus® ASCII protocol is normally used in
application that require to communicate through a
couple of modems.
The functions and addresses available are the same
as for the RTU version, but the transmitted
characters are in ASCII and the message end is
delimited by Carriage return/ Line Feed instead of a
transmission pause.
If one selects the parameter P.51 and/or P.56 as
Modbus® ASCII protocol, the communication
message on the correspondent communication port
has the following structure:
:
Address
(2 chars)
Function
(2 chars)
Dates
(N chars)
LRC
(2
chars)
CR
LF
•
The Address field holds the serial address of the
slave destination device.
•
The Function field holds the code of the function
that must be executed by the slave.
•
The Data field
contains data sent to the slave or
data received from the slave in response to a query.
The maximum allowable length is of 32 consecutive
registers.
•
The LRC field allows the master and slave
devices to check the message integrity. If a
message has been corrupted by electrical noise or
interference, the LRC field allows the devices to
recognize the error and thereby ignore the
message.
•
The message terminates always with CRLF
control character (0D 0A).
Example:
For instance, to read the value of the phase-to-
phase voltage, which resides at location 04 (04 Hex)
from the slave with serial address 08, the message
to send is the following:
: 08 04 00 03 00 02 EF CRLF
Whereas:
: = ASCII 3Ah message start delimiter
08 = slave address
04 = Modbus® function ‘Read input register’
00 0F = Address of the required register (equivalent
phase-to-phase voltage) decreased by one
00 02 = Number of registers to be read beginning
from address 0F
E3 = LRC Checksum
CRLF = ASCII 0Dh 0Ah = Message end delimiter
The DCRJ answer is the following:
: 08 04 04 00 00 01 A0 4F
CR
LF
Whereas:
: = ASCII 3Ah message start delimiter
08 = Multimeter address (Slave 08)
04 = Function requested by the master
04 = Number of bytes sent by the multimeter
00 00 01 A0 = Hex value of the phase-to-phase
voltage (416 V)
4F = LRC checksum
CRLF = ASCII 0Dh 0Ah = Message end delimiter