You are on page 1of 5

Questions

1. Quels rôles le protocole MODBUS prévoit-il pour les appareils participants?


2. Quels types de données sont décrits par le protocole MODBUS?
3. À quels niveaux du modèle OSI appartiennent les trames ADU et PDU décrites dans le protocole
MODBUS?
4. Quel est le nombre maximal d'octets de données qui peuvent être transmis par une seule trame PDU?
5. Quelles sont les caractéristiques du protocole MODBUS TCP?
6. Qu'est-ce qu'un «socket» lors de la transmission de données à l'aide du protocole MODBUS TCP?
7. Quel est l'algorithme de travail avec un socket client pour organiser l'échange via le protocole MODBUS
TCP?"
"Questions de contrôle
1. Quels types de données sont pris en charge par le protocole Modbus ?
2. Quelle est la taille des registres de stockage Modbus ?
3. En quoi consiste la principale différence dans le transfert de données entre Modbus RTU et Modbus
ASCII ?
4. Indiquez le nombre maximal d'appareils esclaves adressables dans un réseau Modbus.
5. Comment les actions à exécuter par les appareils de terrain du réseau sont-elles déterminées dans
Modbus ?
6. Comment le problème de détection des distorsions des données transmises est-il résolu dans le réseau
Modbus TCP ?
7. Que se passe-t-il si un appareil esclave ne peut pas exécuter la demande d'un appareil maître pour une
raison quelconque ?
8. Comment les appareils Modbus sont-ils interconnectés en réseau ?"

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 :

1. **Calcul du CRC pour la réponse de l'esclave 02**


Pour calculer le CRC de la trame `02 03 04 0007 0008`, il faudrait normalement utiliser une formule ou un
algorithme spécifique (comme CRC-16 pour Modbus). Cependant, sans exécuter l'algorithme ici, il est
important de comprendre que le CRC est calculé sur la base des données de la trame. Puisque cet exercice
est simplifié et ne nécessite pas de calcul réel, considérons un CRC fictif, par exemple `XXYY`, pour
démontrer. Donc, une réponse complète pourrait ressembler à `02 03 04 0007 0008 XXYY`.

2. **Formulation de la trame de réponse de l'esclave 03 avec erreur**


Puisque l'esclave 03 signale une erreur due à une adresse de registre non valide, la trame de réponse doit
indiquer cette erreur. Le code de fonction pour une écriture est `06`, et pour signaler une erreur, on ajoute 80
(hex) au code de fonction, ce qui donne `86`. Si on considère le code d'erreur pour une adresse invalide
comme `02`, la trame de réponse pourrait être `03 86 02 XXYY`, où `XXYY` est un CRC fictif.

3. **Importance de l'adresse de l'esclave dans la réponse**


L'inclusion de l'adresse de l'esclave dans sa réponse est cruciale dans un réseau comprenant plusieurs
esclaves car elle permet au maître d'identifier l'origine de la réponse. Dans un système où le maître
communique avec plusieurs esclaves sur un même réseau, l'adresse assure que le maître sait à quel esclave la
réponse appartient, permettant une gestion efficace et organisée des données échangées sur le réseau.
4. **Gestion des trames d'erreur par le maître**
Lorsque le maître reçoit une trame d'erreur d'un esclave, il doit d'abord identifier le type d'erreur à l'aide du
code d'erreur inclus dans la trame. En fonction du type d'erreur, plusieurs actions peuvent être nécessaires :
- **Analyse de l'erreur :** Déterminer la cause de l'erreur (par exemple, adresse de registre invalide,
problème de communication, etc.).
- **Tentative de correction :** Si possible, le maître peut essayer de corriger l'erreur (ajuster l'adresse de
registre, par exemple) et renvoyer la demande.
- **Journalisation de l'erreur :** Enregistrer les détails de l'erreur pour un diagnostic ultérieur ou une
intervention manuelle.
- **Notification :** Informer l'opérateur ou le système de surveillance de l'erreur pour des actions
correctives.

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.

You might also like