2 Description du protocole Modbus
Type de
Description
données
short
Mot (16 bits), valeur de type entier
Plages de valeurs :
0 à 65535 pour les données non signées
-32768 à 32767 pour les données signées
float
2 mots, valeur à virgule flottante sur 32 bits, avec codage sui-
vant IEEE 754, mais il faut tenir compte de l'ordre de transmis-
sion des 4 octets. Dans la configuration de l'interface RS485,
il est possible de sélectionner le codage souhaité lors du ré-
glage du "format de virgule flottante".
S = bit de signe
E = exposant (complément à 2)
M = mantisse normalisée sur 23 bits
Byte 1
SE EEEEEE
7
Byte 1
M MMMMMMM
7
Byte 1
1. registres Modbus
M MMMMMMM
15
long
Mot double (32 bits), valeur de type entier non signé
Plage de valeurs : 0 à 4.294.967.295
string[n]
Chaîne de caractères d'une longueur maximale de n octets.
Le codage des caractères des différentes variables se trouve
dans les tableaux d'adresses Modbus du dernier chapitre de
ce document. Les jeux de caractères sont codés en UTF-8,
ISO 8859-1 ou ASCII.
Chacun des n mots du registre Modbus contient 2 octets
consécutifs de la chaîne de caractères.
Il faut veiller à ce que la chaîne de caractères contienne tou-
jours en dernier un "\0" (code ASCII 0x00) comme caractère
de fin. En outre, la longueur totale de la chaîne doit être un
nombre pair d'octets. Pour garantir cela, il faut ajouter un "/0"
supplémentaire au nombre impair d'octets ("/0" compris).
2.6
Exemples de transmission de données
Pour lire des valeurs de type entier, flottant et texte, on utilise la fonction 0x03 ou 0x04 (lecture
de n mots).
12
IEEE 754 Big Endian
Byte 2
Byte 3
E M MMMMMM
M MMMMMMM
1
0
23
16
15
IEEE 754 Little Endian
Byte 2
Byte 3
M MMMMMMM
E M MMMMMM
0
15
8
0
23
Codage Modbus standard
Byte 2
Byte 3
M MMMMMMM
SE EEEEEE
8
7
0
Byte 4
M MMMMMMM
8
7
Byte 4
SE EEEEEE
16
7
Byte 4
2. registres Modbus
E M MMMMMM
7
1
0
23
Accès
Combinaison
d'appareils
possibles
read only 03, 04
read/
03, 04, 06, 16
write
read only 03, 04
read/
03, 04, 16
write
0
1
16
read only 03, 04
read/
03, 04, 16
write
read only 03, 04
read/
03, 04, 06, 16
write
Nombre
re-
gistres
Modbus
1
2
2
n/2