2 Description du protocole Modbus
2.6.3
Chaînes de caractères (textes)
Les chaînes de caractères sont transmises au format UTF-8.
REMARQUE !
Il faut veiller à ce que la chaîne de caractères contienne toujours en dernier un "\0" (héxadécimale :
0x00) comme caractère de fin. Les caractères qui suivent n'ont aucune signification.
Comme la transmission des textes a lieu mot par mot (registre à 16 bits), si le nombre d'octets est impair
(y compris "\0"), il faut envoyer un 0x00 supplémentaire.
Les longueurs maximales de chaîne de caractères indiquées dans les tableaux des adresses incluent
le "\0". Cela signifie que pour "Char[60]", le texte avec "\0" compris ne peut pas dépasser 60 octets.
Si on a 19 caractères Unicode d'une longueur de 3 octets chacun, il ne reste que 2 octets pour le ving-
tième caractère. 1 octet est nécessaire pour le caractère de fin.
Exemple
Demande de texte à l'adresse 0x021E où se trouve la description du point de mesure, à savoir la chaîne
de caractères "Anlage Nord" (code ASCII : 0x41 0x6E 0x6C 0x61 0x67 0x65 0x20 0x4E 0x6F 0x72
0x64).
Code hexa de la demande :
01
Esclave
Code hexa de la réponse :
01
Esclave
REMARQUE !
La valeur (ici : 00 AA) avant la somme de contrôle (ici : C5DF) n'est pas prise en compte parce qu'elle
suit le caractère de fin „\0".
16
03
Fonction
03
00 0E
Fonction Octets lus
02 1E
00 07
Adresse
Nombre de
Mot 1
mots
41 6E 6C 61 67 65 20 4E 6F 72 64 00 00 AA
Valeurs des mots (caractères ASCII)
65 B6
CRC
C5 DF
CRC