Règles générales liées aux messages Modbus
Traduction de la notice originale
Objectif
Les règles suivantes énoncent l'action attendue de la part de l'utilisateur et la réponse correspondante.
Numéro de séquence
Une modification du numéro de séquence lance toute transaction Modbus. Le module d'E/S contient le dernier numéro de séquence écrit et commence par 0 à la mise sous tension. Le numéro de séquence est renvoyé en écho dans le tampon d'entrée une fois le message Modbus terminé. Des données de lecture continues peuvent être obtenues après la lecture initiale, en incrémentant le numéro de séquence à chaque scrutation uniquement.
Commande et réponse
Voir Modes de contrôle des mots de sortie et Modes de contrôle des mots d'entrée. Vous ne pouvez pas exécuter plus de quatre commandes à la fois (Modes de contrôle 4 ... 8). Les réponses à ces requêtes sont renvoyées dans les registres de réponses.
Réponse à une commande de lecture de bloc
Toutes les commandes de lecture sont consécutives, avec incrémentation à partir de l'adresse de départ jusqu'aux nombres définis par la longueur. La première commande de lecture dont la longueur est de zéro ou supérieure à celle allouée au tampon de réponse empêchera la poursuite du traitement Modbus et le reste du champ de données d'entrée sera mis à zéro. La première commande de lecture commence à la fin du tampon (mots 15 et 16). Le premier mot des données de réponse est placé sur le mot 5 du tampon d'entrée. Après le mot 5, toutes les données de lecture sont renseignées dans l'ordre d'exécution.
Réponse à une commande d'écriture de bloc
Toutes les commandes d'écriture de bloc (modes de contrôle 2 et 3) sont consécutives, avec incrémentation à partir de l'adresse de départ jusqu'aux nombres définis par la longueur. Les commandes d'écriture de bloc dont la longueur est de zéro ou supérieure à celle allouée au tampon de commande ne sont pas exécutées. En revanche, la lecture en mode de contrôle 3 sera exécutée quelle que soit la commande d'écriture.
Réponse à une commande d'écriture seule
Toutes les commandes d'écriture seules (modes de contrôle 4 ... 8) sont exécutées. Zéro peut être utilisé comme adresse de départ ou valeur de date.
Commandes de lecture et d'écriture
Toutes les commandes d'écriture précèdent la réponse de lecture.
Time out des messages Modbus
Le délai d'expiration des messages Modbus est fixé dans le microprogramme à 200 millisecondes et ne peut pas être modifié.
Adresse de départ
Adresse de départ 0 = registre Modbus 400001. Par exemple : Une adresse de départ Modbus 0 correspond au registre Modbus 400001, la valeur 9 à 400010.
Protocole Modbus
Pour une meilleure compréhension du protocole Modbus, reportez-vous au document, PI-MBus-300, Protocole Modbus - Guide de référence.
Réponses Modbus courantes
Le tableau ci-dessous répertorie les codes de réponse Modbus que vous pouvez rencontrer.
Réponse
Code
Fonction incorrecte
01 Hex
Adresse de données incorrecte
02 Hex
Valeur de données incorrecte
03 Hex
Défaillance de l'équipement
04 Hex
Acquittement
05 Hex
Occupé, message rejeté
06 Hex
Etat Modbus Rcv_int incorrect
1C Hex
Etat de communication trn_asc incorrect
1F Hex
Etat de communication trn_rtu incorrect
1D Hex
Etat de communication rcv_asc incorrect
20 Hex
Erreur due à la saturation du tampon de commande
21 Hex
Etat de communication rcv_rtu incorrect
22 Hex
Type de trame put_chr incorrect
23 Hex
Etat d'émission de communication incorrect
25 Hex
Etat de réception de communication incorrect
26 Hex
Etat Modbus tmr0_evt incorrect
27 Hex
Mode ASCII time out 3 caractères
28 Hex
Aucun message demandé
29 Hex
Longueur de données incorrecte
2A Hex
Erreur CRC
2B Hex
Mode de contrôle incorrect (> 8)
2C Hex
Echec du mode de contrôle 0
30 Hex
Echec du mode de contrôle 1
31 Hex
Echec du mode de contrôle 2
32 Hex
Echec du mode de contrôle 3
33 Hex
Echec du mode de contrôle 4
34 Hex
Echec du mode de contrôle 5
35 Hex
Echec du mode de contrôle 6
36 Hex
Echec du mode de contrôle 7
37 Hex
Echec du mode de contrôle 8
38 Hex
Non-concordance de messages
50 Hex
Message accepté
55 Hex