2.8
Messages d'erreur
2.8.1
Codes d'erreur Modbus
Conditions préalables à la communication Modbus
Il faut que les conditions suivantes soient satisfaites pour qu'un esclave puisse recevoir des
demandes, les traiter et y répondre :
•
Le débit en bauds et/ou le format des données du maître doivent correspondre à ceux de
l'esclave.
•
Dans une demande, il faut utiliser la bonne adresse de l'esclave.
•
Les appareils esclaves ne répondent que si la vérification de la somme de contrôle de la
demande réussit. Sinon l'esclave rejette la demande.
•
La demande de données du maître doit être complète et conforme au protocole Modbus.
•
Le nombre de mots à lire doit être supérieur à 0.
Codes d'erreur
Si la demande de données du maître a été reçue par l'esclave sans erreur de transmission,
mais que l'esclave ne peut pas la traiter, il répond avec un code d'erreur. Les codes d'erreur
suivants peuvent apparaître :
•
01 = fonction invalide ; les codes de fonction, prises en charge par l'appareil, type 703571,
voir Chapitre 2.4 „possibles", Page 11".
•
02 = adresse invalide ou bien nombre de mots/bits à lire ou à écrire trop élevé
•
03 = valeur hors de la plage autorisée
•
08 = valeur protégée en écriture
Réponse en cas d'erreur
Adresse de l'esclave
1 octet
Le code de la fonction est combiné à la valeur 0x80 avec un opérateur OU. Ainsi le bit de poids
fort (MSB) est mis à 1.
Exemple
Demande de données :
01
Esclave
Réponse (avec code d'erreur 2) :
01
Esclave
Réponse avec le code d'erreur 02 parce que l'adresse 0x2345 n'existe pas.
2 Description du protocole Modbus
Fonction XX OR 80h
1 octet
06
23 45
Ecrire un mot
Adresse du
mot
86
02
Fonction OR
Erreur
Code d'erreur
1 octet
00 01
52 5B
Valeur du mot
CRC
C3 A1
CRC
Somme de contrôle
CRC
2 octets
21