Codes d'exception Modbus TCP/IP et Modbus-SL
Réponses d'exception
Les réponses d'exception émises par le client ou un serveur peuvent être dues à des erreurs dans le traitement des données. Un des événements suivants peut se produire après l'émission d'une demande par le client :
-
Si le serveur reçoit la requête du client sans erreur de communication et la gère correctement, il renvoie une réponse normale.
-
Si le serveur ne reçoit pas la requête du client en raison d'une erreur de communication, il ne renvoie aucune réponse. Le programme client s'arrête en appliquant une condition de temporisation à la requête.
-
Si le serveur reçoit la requête du client, mais détecte une erreur de communication, il ne renvoie aucune réponse. Le programme client s'arrête en appliquant une condition de temporisation à la requête.
-
Si le serveur reçoit la requête du client sans erreur de communication, mais qu'il ne peut pas la gérer correctement (par exemple, une requête de lecture d'un registre inexistant), le serveur renvoie une réponse d'exception pour informer le client de la nature de l'erreur.
Trame d'exception
Le serveur envoie une trame d'exception au client pour indiquer une réponse d'exception. Une réponse d'exception se compose de quatre champs :
Champ |
Définition |
Taille |
---|---|---|
1 |
Numéro du serveur |
1 octet |
2 |
Code de fonction d'exception |
1 octet |
3 |
Code d'exception |
n octets |
4 |
Contrôle |
2 octets |
Gestion des exceptions Modbus
La trame d'une réponse d'exception se compose de deux champs qui la distinguent d'une trame de réponse normale :
-
Le code de fonction d'exception est égal au code de fonction de la demande d'origine auquel on ajoute 128 (0x80).
-
Le code d'exception dépend de l'erreur de communication détectée par le serveur.
Le tableau suivant décrit les codes d'exception gérés par les appareils sans fil de l'EcoStruxure Panel Server :
Code d'exception |
Nom |
Description |
---|---|---|
01 |
Fonction illégale |
Le code de fonction reçu dans la requête ne correspond pas à une action autorisée de la part du serveur. Il est possible que le serveur se trouve dans un état incompatible avec le traitement d'une requête spécifique. |
02 |
Adresse de données incorrecte |
L'adresse de données reçue par le serveur n'est pas une adresse autorisée pour le serveur. |
03 |
Valeur de données incorrecte |
La valeur du champ de données de la requête n'est pas une valeur autorisée pour le serveur. |
04 |
Défaillance du serveur |
Le serveur ne peut pas exécuter une action requise en raison d'une erreur non récupérable. |
06 |
Serveur occupé |
Le serveur est occupé à traiter une autre commande. Le client doit envoyer la requête lorsque le serveur est libre. |
Accès aux variables
Une variable Modbus peut avoir les attributs suivants :
-
Lecture seule
-
Lecture/écriture
-
Ecriture seule