2 Description du protocole Modbus
2.7
Messages d'erreur
2.7.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 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 707071, voir
chapitre 2.4 "Codes de fonction", page 8
•
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 8) :
01
Esclave
Réponse avec le code d'erreur 08 parce que l'adresse 0x0069 est en lecture seule.
14
Fonction XX OR 80h
1 octet
06
00 69
Ecrire un mot
Adresse du mot
86
08
Fonction OR
Erreur
Code d'erreur
1 octet
00 01
Valeur du mot
43 A6
CRC
Somme de contrôle
CRC
2 octets
98 16
CRC