Codes d'exception Modbus
Réponses d'exception
Les réponses d'exception provenant du maître (client) ou d'un esclave (serveur) peuvent être le résultat d'erreurs de traitement de données. L'un des événements suivants peut se produire après une requête du maître (client) :
-
Si l'esclave (serveur) reçoit la requête sans erreur de communication et gère correctement la requête, il renvoie une réponse normale.
-
Si l'esclave (serveur) ne reçoit pas la requête à cause d'une erreur de communication et gère correctement la requête, il ne renvoie aucune réponse. Le programme maître finit par appliquer une condition de temporisation à la requête.
-
Si l'esclave (serveur) reçoit la requête mais détecte une erreur de communication, il ne renvoie pas de réponse. Le programme maître finit par appliquer une condition de temporisation à la requête.
-
Si l'esclave (serveur) reçoit la requête sans erreur de communication mais ne peut pas la traiter correctement (par exemple, la requête consiste à lire un registre qui n'existe pas), l'esclave renvoie une réponse d'exception pour informer le maître de la nature de l'erreur.
Trame d'exception
L'esclave (serveur) envoie une trame d'exception au maître (client) pour signaler une réponse d'exception. Une trame d'exception se compose de 4 champs :
Champ |
Définition |
Taille |
Description |
---|---|---|---|
1 |
Numéro de l'esclave |
1 octet |
Destination de la requête
|
2 |
Code de fonction d'exception |
1 octet |
Code de fonction de requête + 128 (0x80) |
3 |
Code d'exception |
n octets |
Voir paragraphe suivant |
4 |
Recherche d'erreurs CRC |
2 octets |
CRC16 (pour vérifier le contenu des messages de transmission complets) |
Codes d'exception
La trame de la réponse d'exception se compose de deux champs qui la différencient d'une trame de réponse normale :
-
Le code de fonction d'exception de la réponse d'exception est égal au code de fonction de la requête originale plus 128 (0x80).
-
Le code d'exception dépend de l'erreur de communication que détecte l'esclave (serveur).
Le tableau suivant décrit les codes d'exception gérés par le disjoncteur :
Code d'exception |
Nom |
Description |
---|---|---|
01 (0x01) |
Illegal function (Fonction incorrecte) |
Le code de fonction reçu dans la requête n'est pas une action autorisée pour l'esclave. Il est possible que l'esclave soit dans un état inadéquat pour traiter une requête spécifique. |
02 (0x02) |
Illegal data address (Adresse de données incorrecte) |
L'adresse de données reçue par l'esclave n'est pas une adresse autorisée pour l'esclave. |
03 (0x03) |
Illegal data value (Valeur de données incorrecte) |
La valeur du champ de données de la requête n'est pas une valeur autorisée pour l'esclave. |
04 (0x04) |
Slave device failure (Défaillance de l'esclave) |
L'esclave ne parvient pas à réaliser une action requise à cause d'une erreur irrémédiable. |
05 (0x05) |
Acknowledge (Acquittement) |
L'esclave accepte la requête mais un long délai est nécessaire pour la traiter. |
06 (0x06) |
Slave device busy (Esclave occupé) |
L'esclave est occupé à traiter une autre commande. Le maître doit envoyer la requête une fois que l'esclave est disponible. |
07 (0x07) |
Negative acknowledgment (Acquittement négatif) |
L'esclave ne peut pas traiter la requête de programmation envoyée par le maître. |
08 (0x08) |
Memory parity error (Erreur de parité de mémoire) |
L'esclave détecte une erreur de parité dans la mémoire lorsqu'il lit la mémoire étendue. |
10 (0x0A) |
Gateway path unavailable (Chemin de passerelle indisponible) |
La passerelle est surchargée ou n'est pas correctement configurée. |
11 (0x0B) |
Gateway target device failed to respond (Le périphérique passerelle cible ne répond pas) |
L'esclave n'est pas présent sur le réseau. |
Adresse de données incorrecte
Ce guide décrit les registres disponibles pour chaque module IMU doté de la dernière version de micrologiciel. Lorsqu'un registre décrit dans ce guide n'est pas implémenté dans un module IMU équipé d'une version de micrologiciel antérieure, une réponse d'exception est renvoyée avec le code d'exception 02 (0x02) Illegal data address (Adresse de données incorrecte).
Vous pouvez mettre à jour le micrologiciel des modules IMU à l'aide de EcoStruxure Power Commission.