Professional Documents
Culture Documents
Modbus
Modbus
Exercice 1
Le message émis par le maître est le suivant : 04 03 00 02 00 01 259F
Décoder le message émis par le maître en complétant le tableau suivant.
L'esclave peut émettre deux types de réponse :
Réponse n°1 : 04 03 020258 74DE
Réponse n°2 : 04 83 02D0F0
Décoder le message « réponse n°1 » émis par l'esclave
Décoder le message « réponse n°2 » émis par l'esclave
Exercice 2
Le pressostat TEDM et le thermostat ETTNM possèdent un port série RS485 et utilisent le protocole de
communication Modbus RTU. Les TEDM et ETTNM utilise 4 codes fonctions.
Ces codes fonctions permettent de récupérer :
• la valeur de mesurée de pression (TEDM) ou de température (ETTNM)
• l’état de chaque seuil (ouvert ou fermé)
et d’écrire l’état et le réglage des seuils, le code d’accès et l’adresse de l’esclave
Le maître veut interroger le TEDM/ETTNM sur la valeur de la mesure, du code, du réglage des points de
commutation haut ou bas des temporisations des seuils.
La question envoyée par le maître doit spécifier l’adresse du registre à lire. Les registres sont adressés à
partir de zéro : les registres 1-11 sont adressés de 0 à 10.
1. Donner la requête émise par le maître pour lire le registre 1 (valeur mesure) de l’esclave 59.
2. En décodant la réponse de l'esclave donner (en décimal) la valeur de la mesure.
Le code fonction 05 (Write Single Coil) est utilisé pour configurer à distance les seuils en NO ou en NC.
Les coils concernés sont le 05 (NO) et le 06 (NC) avec en adresse respective adr 04 et adr 05.
Pour configurer le seuil en NO, la donnée 0xFF00 est envoyée à l’esclave.
Pour configurer le seuil en NC, la donnée 0x0000 est envoyée à l’esclave.
En sachant que l’esclave confirme l’écriture en renvoyant le même message que celui que lui a envoyé le
maître, déduire la signification de la requête envoyée par le maître.
Dans un réseau utilisant un protocole de communication similaire à Modbus, un maître peut envoyer des
requêtes à différents dispositifs esclaves pour lire ou écrire des données. Chaque message contient l'adresse
de l'esclave, un code de fonction indiquant le type de requête, les données de la requête, et une vérification
d'erreur CRC à la fin.
Exercice :
Vous êtes en train de développer une simulation de réseau comprenant un maître et deux esclaves ayant
respectivement les adresses 02 et 03. Le maître envoie les trames suivantes aux esclaves :
- À l'esclave 02 : Lecture de 2 registres à partir de l'adresse de registre 0003. Trame émise par le maître :
`02 03 00 03 00 02 A259`
- À l'esclave 03 : Écriture d'un seul registre à l'adresse 0004 avec la valeur 00FF. Trame émise par le maître :
`03 06 00 04 00 FF 9ACF`
Les esclaves répondent aux requêtes comme suit :
- Esclave 02 répond sans erreur, en retournant les valeurs des 2 registres demandés :
`02 03 04 0007 0008 CRC`
- Esclave 03 signale une erreur dans la requête d'écriture à cause d'une adresse de registre non valide.
1. Calculez le CRC pour la réponse de l'esclave 02 sachant que la trame de réponse est
`02 03 04 0007 0008`. Ignorez la valeur CRC indiquée et remplacez-la par le résultat correct.
2. Pour l'esclave 03, formulez la trame de réponse indiquant une erreur.
Utilisez le code de fonction approprié pour signaler une erreur d'adresse de registre non valide.
3. Expliquez pourquoi il est important que l'esclave inclue son adresse dans la réponse, surtout dans un
réseau comportant plusieurs esclaves.
4. Décrivez comment le maître peut gérer la réception d'une trame d'erreur d'un esclave. Quelles étapes
devrait-il suivre ?
Pour répondre aux questions de l'exercice, voici les solutions :
Ces étapes permettent de maintenir l'intégrité de la communication dans le réseau et d'assurer que les
opérations peuvent continuer avec le minimum d'interruption.