2 Description du protocole Modbus
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 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.
•
L'ordre du maître doit être complet 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 se
produire :
•
01 = fonction invalide ; les codes de fonction supportés par cet appareil sont détaillés dans
le chapitre 2.4 "Codes de fonction", Page 8.
•
02 = adresse invalide ou 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.
18
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