Réseaux industriels et Modbus : trame, supervision, CEI 61131-3
Résumez cet article :
En bref
Un réseau industriel relie automates, variateurs, appareils de mesure et postes de conduite. Modbus en est le protocole le plus répandu : en RTU sur une paire RS-485, un maître interroge des esclaves numérotés de 1 à 247 avec une trame « adresse, fonction, données, CRC » ; en TCP sur Ethernet, la même requête voyage derrière un en-tête MBAP, sur le port 502. Profinet et EtherNet/IP assurent les échanges cycliques rapides entre automates et entrées-sorties. La supervision et les IHM affichent synoptiques, alarmes et courbes. Les programmes s'écrivent dans les langages de la CEI 61131-3 : LD, FBD, ST et SFC, l'IL ayant été retiré en 2025.
Dans une armoire moderne, le fil de commande cède la place au câble de communication. Un variateur reçoit sa consigne dans un mot de 16 bits, une centrale de mesure répond à des questions, l'opérateur regarde un écran. Le technicien supérieur doit donc savoir choisir un réseau, le câbler, paramétrer les échanges, lire une trame quand la communication ne s'établit pas, et écrire le programme qui exploite les données.
Ce chapitre de BTS Électrotechnique prolonge le cours sur le grafcet et l'automate programmable, qui décrit la constitution de l'automate, le câblage de ses entrées-sorties et le passage du grafcet au Ladder. On traite ici ce qui circule entre les équipements et la façon normalisée de programmer.
Réseaux industriels : du capteur à la supervision
On découpe habituellement la communication d'un site en trois niveaux, qui n'ont pas les mêmes exigences. Au niveau terrain, les capteurs, les variateurs, les démarreurs et les appareils de mesure échangent peu de données, mais souvent. Au niveau commande, les automates dialoguent avec leurs entrées-sorties déportées et entre eux : les échanges sont cycliques et le temps de cycle doit être garanti. Au niveau supervision, des postes informatiques collectent les données pour l'affichage, l'archivage et la gestion de production : les volumes sont plus gros, les délais de l'ordre de la seconde.
Deux modèles d'échange reviennent partout. Dans le modèle maître-esclave, un seul équipement a la parole : il interroge les autres à tour de rôle, et aucun esclave n'émet sans avoir été sollicité. Dans le modèle client-serveur, plusieurs clients peuvent ouvrir une connexion vers le serveur qui détient les données. Le premier convient à un bus série partagé, le second à Ethernet.
Quatre critères guident le choix d'un réseau : le débit, le déterminisme (le temps de réponse maximal est-il garanti ?), la distance et la topologie admises, et l'interopérabilité entre constructeurs. Ce dernier explique la longévité de Modbus : publié en 1979, ouvert, simple, il est parlé par presque tous les équipements d'électricité industrielle, du compteur d'énergie au groupe froid.
Modbus RTU : la liaison série RS-485
Modbus définit d'abord un langage (des requêtes et des réponses), puis des façons de le transporter. La plus ancienne, toujours très employée, est la ligne série RS-485 en mode RTU, où les octets sont transmis en binaire.
Le câblage du bus
Le bus RS-485 « deux fils » est une paire torsadée sur laquelle le signal est transmis en mode différentiel, accompagnée d'un conducteur commun. Le guide Modbus sur ligne série nomme ces bornes D0, D1 et Common ; beaucoup d'appareils les notent A, B ou « + » et « − », et une inversion des deux fils de la paire est la première cause de bus muet. Les équipements se raccordent en chaînage le long d'un câble principal, soit directement de borne en borne, soit par de courtes dérivations.
Le guide fixe les limites à retenir pour un bus sans répéteur :
- 32 appareils au plus (davantage si les émetteurs-récepteurs présentent une charge réduite, ce que le constructeur doit alors documenter) ;
- 1 000 m de câble principal jusqu'à 9 600 bit/s, avec des conducteurs de section suffisante ;
- des dérivations qui ne dépassent jamais 20 m ;
- une résistance de fin de ligne à chaque extrémité du câble principal, entre D0 et D1, et jamais sur une dérivation ;
- un câble blindé, dont le blindage est relié à la terre de protection à une extrémité de chaque tronçon. C'est le minimum du guide : la notice des appareils demande souvent une reprise aux deux extrémités, pour les raisons données dans le cours sur la compatibilité électromagnétique.
La résistance de fin de ligne adapte l'impédance du câble et évite que le signal se réfléchisse en bout de ligne. Le guide Modbus propose une résistance de 150 Ω, ou de 120 Ω en série avec un condensateur de 1 nF quand le bus est polarisé ; beaucoup d'appareils intègrent une terminaison de 120 Ω activée par un commutateur. On retient la valeur que préconise la notice des appareils et du câble. Lorsque des appareils l'exigent, le bus est aussi polarisé par une paire de résistances, en un seul point (en général le maître), afin que la ligne garde un état défini quand personne n'émet. Le choix du câble et de son blindage suit la même logique que pour les réseaux informatiques, expliquée dans notre article sur les câbles réseau blindés et non blindés.
Les paramètres de communication
Tous les appareils d'un même bus doivent partager exactement le même réglage : vitesse, parité, nombre de bits de stop. Le guide Modbus impose que 9 600 et 19 200 bit/s soient disponibles, 19 200 bit/s étant la valeur par défaut, avec une parité paire. En RTU, chaque octet occupe 11 bits sur la ligne : 1 bit de start, 8 bits de données, 1 bit de parité, 1 bit de stop ; sans parité, on met 2 bits de stop, ce qui conserve 11 bits. Une vitesse ou une parité différente sur un seul esclave suffit à le rendre invisible.
Chaque esclave reçoit une adresse unique de 1 à 247. L'adresse 0 est réservée à la diffusion : le maître s'adresse à tous les esclaves à la fois, uniquement pour une écriture, et aucun ne répond. Les adresses 248 à 255 sont réservées. Le maître, lui, n'a pas d'adresse.
La trame Modbus RTU : adresse, fonction, données, CRC
Une trame RTU comporte quatre champs. L'adresse de l'esclave tient sur 1 octet. Le code fonction, sur 1 octet, dit ce que l'on demande. Les données précisent sur quoi porte la demande. Le CRC, sur 2 octets, est un contrôle calculé sur tous les octets précédents : le récepteur le recalcule et ignore la trame si le résultat diffère. La spécification appelle PDU l'ensemble « fonction + données », limité à 253 octets, et ADU la trame complète, limitée à 256 octets sur ligne série.

Prenons la requête de la figure, notée en hexadécimal : 05 03 00 64 00 02 84 50. Le maître s'adresse à l'esclave 5 (05), lui demande de lire des registres de maintien (fonction 03), à partir de l'adresse 0x0064, soit 100 en décimal, et en veut 2 (00 02). Les deux derniers octets sont le CRC, transmis octet de poids faible en premier. Partout ailleurs, Modbus transmet le poids fort en premier : 100 s'écrit 00 64, pas 64 00.
L'esclave répond 05 03 04 00 E6 00 00 5E 04 : il rappelle son adresse et la fonction, annonce 4 octets de données, puis donne les deux registres, 0x00E6 = 230 et 0x0000 = 0, et termine par son CRC.
Rien, dans la trame RTU, n'indique son début ni sa fin. C'est le silence qui la délimite : deux trames sont séparées par un temps mort d'au moins 3,5 caractères, et un trou de plus de 1,5 caractère au milieu d'une trame la fait rejeter.
On en déduit la durée d'un échange. À 19 200 bit/s, un caractère de 11 bits dure 11 / 19 200 = 0,573 ms : la requête de 8 octets dure 4,6 ms, la réponse de 9 octets 5,2 ms, et les deux silences 2,0 ms chacun, soit environ 14 ms, plus le temps de traitement de l'esclave. Le maître interrogeant ses esclaves l'un après l'autre, le rafraîchissement d'une donnée ralentit avec leur nombre (exercice 3).
Tables de données et codes fonction Modbus
Un esclave Modbus présente ses données dans quatre tables. La spécification les définit ainsi :
| Table | Taille | Accès | Exemple | Fonctions |
|---|---|---|---|---|
| Entrées discrètes (discrete inputs) | 1 bit | Lecture seule | État d'un contact, d'un défaut | 02 |
| Bobines (coils) | 1 bit | Lecture et écriture | Ordre de marche, sortie relais | 01, 05, 15 |
| Registres d'entrée (input registers) | Mot de 16 bits | Lecture seule | Tension, courant mesurés | 04 |
| Registres de maintien (holding registers) | Mot de 16 bits | Lecture et écriture | Consigne, paramètre | 03, 06, 16 |
Les huit fonctions à connaître sont donc : 01 lire des bobines, 02 lire des entrées discrètes, 03 lire des registres de maintien, 04 lire des registres d'entrée, 05 écrire une bobine, 06 écrire un registre, 15 (0x0F) écrire plusieurs bobines, 16 (0x10) écrire plusieurs registres. Une requête lit au plus 125 registres ou 2 000 bits d'un coup, et écrit au plus 123 registres. Pour forcer une bobine avec la fonction 05, la valeur est 0xFF00 pour « 1 » et 0x0000 pour « 0 ».
Adresse et numéro de registre : le décalage de 1
La trame transporte une adresse qui commence à 0, alors que les tables d'échange des constructeurs numérotent souvent les éléments à partir de 1. La spécification donne elle-même l'exemple : lire les registres n° 108 à 110 revient à envoyer l'adresse 0x006B, soit 107. Certaines notices ajoutent un préfixe qui désigne la table (4 pour les registres de maintien, 3 pour les registres d'entrée) : le « registre 40108 » se lit alors avec la fonction 03 à l'adresse 107. Ce préfixe est une convention d'écriture ; il ne figure jamais dans la trame. Devant une table d'échange, la première question est donc : la colonne donne-t-elle des adresses ou des numéros ?
Le codage des valeurs
Un registre contient 16 bits, soit un entier de 0 à 65 535, ou de −32 768 à 32 767 s'il est signé. Pour transmettre une grandeur à virgule, le constructeur applique un facteur d'échelle : une tension de 230,4 V devient l'entier 2 304 avec un pas de 0,1 V. Pour une grandeur qui dépasse 16 bits, comme un index d'énergie, il utilise deux registres consécutifs (32 bits). Modbus ne dit pas lequel des deux mots vient en premier : l'ordre dépend de l'appareil, et une valeur absurde à l'écran vient très souvent de deux mots inversés (exercice 5).
Les réponses d'exception
Quand un esclave reçoit une requête correcte sur la forme mais qu'il ne peut pas exécuter, il renvoie une réponse d'exception : le code fonction est celui de la requête augmenté de 0x80 (03 devient 0x83), suivi d'un code d'erreur. Les quatre premiers suffisent à l'examen : 01 fonction illégale (non gérée par l'appareil), 02 adresse de données illégale (le registre demandé n'existe pas), 03 valeur de données illégale, 04 défaillance de l'appareil. Une exception est une bonne nouvelle pour le dépanneur : le câblage, la vitesse et l'adresse d'esclave sont bons. Si, au contraire, la trame arrive avec un CRC faux ou à une adresse inconnue, personne ne répond et le maître constate un dépassement de délai.
Modbus TCP : la même requête sur Ethernet
Modbus TCP reprend le PDU tel quel et le place dans une connexion TCP/IP, sur le port 502. L'adresse d'esclave et le CRC disparaissent : l'adresse IP désigne l'appareil, et le contrôle d'erreur est assuré par Ethernet et TCP. À la place, le PDU est précédé d'un en-tête de 7 octets, le MBAP :
- l'identifiant de transaction (2 octets), recopié par le serveur, qui permet au client d'associer chaque réponse à sa requête ;
- l'identifiant de protocole (2 octets), toujours à 0 pour Modbus ;
- la longueur (2 octets), nombre d'octets qui suivent ;
- l'identifiant d'unité (1 octet).
Le vocabulaire change : on parle de client (celui qui interroge) et de serveur (celui qui détient les données). Un serveur accepte plusieurs clients à la fois, ce qui permet à un automate et à une supervision de lire le même variateur. La trame complète mesure au plus 260 octets.
L'identifiant d'unité sert aux passerelles. Une passerelle Modbus possède une adresse IP côté Ethernet et un port RS-485 côté terrain : le client lui envoie une requête TCP dont l'identifiant d'unité est l'adresse de l'esclave série visé, et la passerelle la retransmet en RTU. Pour un appareil directement raccordé à Ethernet, ce champ ne sert pas et le guide recommande d'y mettre 0xFF. C'est ainsi que l'on remonte, sans les remplacer, les compteurs d'un plan de comptage vers un poste de suivi énergétique.
Modbus, dans sa forme d'origine, ne prévoit ni authentification ni chiffrement : quiconque atteint le port 502 d'un appareil peut y écrire. Un réseau Modbus TCP ne se raccorde donc jamais à Internet ni au réseau bureautique sans cloisonnement.
Ethernet industriel : Profinet et EtherNet/IP
Modbus TCP fonctionne par questions et réponses, sans garantie de délai. Pour piloter des entrées-sorties déportées ou des variateurs avec un temps de cycle maîtrisé, on emploie des protocoles d'Ethernet industriel. Ils utilisent le câblage Ethernet décrit dans le cours sur le câblage structuré et la fibre optique et y ajoutent un échange cyclique de données. Le BTS en demande le principe.
| Critère | Modbus TCP | Profinet | EtherNet/IP |
|---|---|---|---|
| Rôles | Client et serveur | Contrôleur IO, périphérique IO, superviseur IO | Scanner et adaptateur |
| Échange | Requête puis réponse, à la demande | Données d'E/S cycliques en temps réel, TCP/IP en parallèle | Messages implicites (cycliques) et explicites (à la demande) |
| Description de l'appareil | Table d'échange de la notice | Fichier GSD importé dans le logiciel | Fichier EDS importé dans le logiciel |
| Emploi type | Mesure, comptage, lien avec la supervision | E/S déportées, variateurs, axes | E/S déportées, variateurs, axes |
Profinet, normalisé dans les séries CEI 61158 et CEI 61784, identifie chaque périphérique par un nom d'appareil attribué à la mise en service ; c'est ce nom, plus que l'adresse IP, qu'il faut redonner quand on remplace un module. Les données d'entrées-sorties circulent en temps réel pendant que le même câble transporte des échanges TCP/IP ordinaires.
EtherNet/IP transporte le protocole applicatif CIP sur un Ethernet standard, avec TCP et UDP ; « IP » signifie ici Industrial Protocol. Les messages implicites portent les données cycliques, les messages explicites le paramétrage et le diagnostic.
Dans les deux cas, on importe le fichier de description de l'appareil dans le logiciel de l'automate, on déclare l'appareil dans la configuration matérielle, et ses données apparaissent comme des entrées-sorties ordinaires. Les deux familles possèdent aussi une extension qui fait passer les signaux de sécurité sur le même câble, sujet du cours sur la sécurité des machines.
Les topologies : bus, étoile, ligne et anneau
La topologie est la forme du câblage. Elle conditionne ce qui se passe quand un câble est coupé.

Le bus est la topologie du RS-485 : un câble principal, des appareils en parallèle dessus. Il est économe en câble, mais une coupure isole tout ce qui est en aval. L'étoile est la topologie naturelle d'Ethernet : chaque appareil est relié à un commutateur par un lien qui ne dépasse pas 100 m en cuivre. La panne d'un lien n'affecte qu'un appareil, mais le commutateur devient un point sensible. La ligne chaîne des appareils à deux ports Ethernet, sans commutateur externe, avec la même faiblesse que le bus en cas de coupure. L'anneau referme la ligne sur elle-même : si un câble est coupé, les données passent par l'autre côté. Il exige un protocole de redondance, MRP pour Profinet ou DLR pour EtherNet/IP.
Dans tous les cas, les câbles de communication cheminent à l'écart des câbles de puissance, surtout de ceux qui relient un variateur de vitesse à son moteur.
Supervision et IHM : conduire l'installation
L'interface homme-machine (IHM) est un pupitre, tactile le plus souvent, placé sur la machine : l'opérateur y lance un cycle, règle une consigne, lit un défaut. La supervision est un logiciel installé sur un poste informatique qui surveille tout un atelier ou un bâtiment ; on la désigne aussi par le sigle SCADA. Les deux lisent et écrivent des variables dans les automates. Chaque variable de supervision est définie par un nom, un type, l'équipement source, son adresse dans cet équipement (un registre Modbus, par exemple) et une période de rafraîchissement.
Une supervision assure cinq fonctions : les synoptiques, qui représentent l'installation avec des objets animés ; les commandes, soumises à des droits selon l'utilisateur ; les alarmes, horodatées à leur apparition, à leur acquittement et à leur disparition ; les historiques et les courbes, archivés dans une base de données ; les rapports, pour la traçabilité et le suivi énergétique.
Une règle de conception domine : la supervision ne commande pas le procédé en temps réel. Les automatismes et, à plus forte raison, les sécurités restent dans l'automate et dans le câblage ; si le poste de supervision s'arrête, l'installation doit continuer à fonctionner et à se protéger.
Pour dialoguer avec des automates de constructeurs différents, la supervision utilise un pilote par protocole (Modbus TCP très souvent) ou le standard OPC UA. En bâtiment tertiaire, la même fonction s'appelle GTB, présentée dans le cours sur la domotique et le bâtiment communicant.
Les langages de la CEI 61131-3 : LD, FBD, ST, SFC et IL
La norme CEI 61131-3 (IEC 61131-3 en anglais) définit les langages de programmation des automates, pour qu'un programmeur retrouve les mêmes notions d'un atelier logiciel à l'autre. Sa première édition date de 1993. Elle a longtemps décrit cinq langages ; l'édition 4, publiée en mai 2025, n'en conserve que quatre : le texte structuré ST, les langages graphiques LD et FBD, et le SFC, que la norme présente comme un jeu d'éléments servant à structurer les programmes. La liste d'instructions a été retirée.

Le LD (Ladder Diagram, schéma à contacts) reprend l'aspect d'un schéma électrique : des contacts en série ou en parallèle entre deux barres alimentent une bobine. Lisible par un électricien, il reste le langage des verrouillages. Le FBD (Function Block Diagram, logigramme) relie des blocs par des fils : portes logiques, temporisations, compteurs, régulateurs. Il convient aux traitements continus, comme la régulation PID.
Le ST (Structured Text, texte structuré) est un langage textuel proche du Pascal : affectation par :=, structures IF … THEN … END_IF, CASE, FOR, WHILE. Il est le plus efficace pour les calculs, les mises à l'échelle, les tableaux et le traitement des données de communication. Le SFC (Sequential Function Chart) organise le programme en étapes et transitions : c'est la forme normalisée du grafcet, étudié dans le chapitre 22. Le SFC structure la séquence ; les actions et les réceptivités s'écrivent dans l'un des autres langages.
L'IL (Instruction List, liste d'instructions) est un langage textuel de bas niveau, une instruction par ligne, proche de l'assembleur. Déclaré obsolète dans l'édition 3 de 2013, il a été retiré de l'édition 4 en 2025. On le rencontre encore dans les programmes anciens et dans les annales.
La structure d'un programme
La norme ne se limite pas aux langages. Elle impose de déclarer les variables avec un type : BOOL pour un bit, INT pour un entier signé de 16 bits, DINT sur 32 bits, WORD pour un mot de 16 bits, REAL pour un nombre à virgule, TIME pour une durée (T#5s). Elle découpe le programme en unités d'organisation : la fonction, qui renvoie un résultat sans rien mémoriser ; le bloc fonctionnel, qui garde une mémoire d'un cycle au suivant et que l'on instancie autant de fois que nécessaire (un bloc « moteur » pour dix moteurs) ; le programme, qui les appelle. Les programmes sont rattachés à des tâches, cycliques ou déclenchées par un événement.
La norme fournit des blocs standard, dont la temporisation au travail TON, la temporisation au repos TOF, le compteur CTU et les détections de front R_TRIG et F_TRIG. En ST, une alarme de niveau bas temporisée de 5 s s'écrit ainsi :
Tempo(IN := Niveau_bas, PT := T#5s); (* Tempo est une instance de TON *)
Alarme := Tempo.Q;Un même projet mélange les langages : SFC pour la séquence, LD pour les verrouillages et les sorties, ST ou FBD pour les calculs et la communication.
Les points qui tombent à l'examen
Six attendus reviennent. Décoder une trame Modbus RTU ou TCP, en passant de l'hexadécimal au décimal. Passer d'un numéro de registre à une adresse et choisir le code fonction à partir d'une table d'échange. Convertir une valeur : facteur d'échelle, entier signé, grandeur sur deux registres. Justifier un câblage RS-485 : chaînage, terminaisons, longueur, nombre d'appareils, paramètres identiques. Argumenter une architecture : quel réseau à quel niveau, quelle topologie pour quelle continuité de service. Lire ou compléter un programme en LD, FBD ou ST, et structurer une séquence en SFC.
Les erreurs qui reviennent
La première erreur est le décalage de 1 entre numéro et adresse de registre. Elle se signale par une exception 02 ou, plus sournoisement, par la valeur du registre voisin. Sa cousine consiste à confondre les tables : lire avec la fonction 03 une mesure rangée dans les registres d'entrée (fonction 04).
La deuxième consiste à câbler le RS-485 en étoile, comme un réseau Ethernet, ou à oublier les résistances de fin de ligne. Le bus fonctionne parfois sur table, sur quelques mètres, puis décroche une fois installé.
Troisième erreur : donner la même adresse à deux esclaves, ou laisser un appareil à sa vitesse d'usine. Dans le premier cas, les deux répondent en même temps et le maître ne voit que des erreurs de CRC.
Dernière erreur : mettre une sécurité dans la supervision, ou raccorder le réseau d'automatisme au réseau de l'entreprise sans cloisonnement. La supervision informe et pilote, l'automate et le câblage protègent, et Modbus n'authentifie personne.
Réseaux industriels et Modbus : exercices corrigés
Tous les exercices sont de niveau BTS. Cherchez avant d'ouvrir le corrigé.
Exercice 1. Un analyseur de trames affiche la requête Modbus RTU suivante : 03 06 00 0A 01 F4 A8 3D. Le destinataire est un variateur dont la table d'échange indique : « registre de maintien d'adresse 10 : consigne de fréquence, pas de 0,1 Hz ». Décodez la trame et donnez la consigne envoyée.
Voir le corrigé
03 : adresse de l'esclave, le variateur n° 3. 06 : fonction « écrire un registre de maintien ». 00 0A : adresse du registre, 0x000A = 10. 01 F4 : valeur à écrire, 0x01F4 = 1 × 256 + 15 × 16 + 4 = 256 + 240 + 4 = 500. A8 3D : CRC, poids faible en premier. Consigne = 500 × 0,1 Hz = 50,0 Hz. Conclusion : le maître demande au variateur 3 de fonctionner à 50,0 Hz ; pour la fonction 06, la réponse normale de l'esclave est l'écho exact de la requête.
Exercice 2. La notice d'une centrale de mesure (esclave 12) indique : « tension U12 : registre de maintien n° 40201, entier non signé, pas de 0,1 V », la numérotation commençant à 40001. a) Écrivez les six premiers octets de la requête de lecture de ce seul registre. b) La centrale répond 0C 03 02 0F A3 suivi du CRC : quelle est la tension ? c) Écrivez la même requête en Modbus TCP à travers une passerelle, avec l'identifiant de transaction 0x0007.
Voir le corrigé
a) Le préfixe 4 désigne les registres de maintien : fonction 03. Numéro de registre 201, donc adresse 201 − 1 = 200 = 0x00C8. Esclave 12 = 0x0C. Requête : 0C 03 00 C8 00 01, suivie des 2 octets de CRC. b) 02 : deux octets de données ; 0x0FA3 = 15 × 256 + 10 × 16 + 3 = 3 840 + 160 + 3 = 4 003. Tension = 4 003 × 0,1 = 400,3 V. c) En-tête MBAP : transaction 00 07, protocole 00 00, longueur 00 06 (1 octet d'unité + 5 octets de PDU), unité 0C. Puis le PDU inchangé : 03 00 C8 00 01. Trame : 00 07 00 00 00 06 0C 03 00 C8 00 01, soit 12 octets, sans CRC. Conclusion : la tension U12 vaut 400,3 V, et seul l'habillage de la requête change entre RTU et TCP.
Exercice 3. Un automate maître interroge 12 esclaves en Modbus RTU à 9 600 bit/s, parité paire. À chaque esclave, il lit 10 registres de maintien en une requête. On compte 3,5 caractères de silence avant la requête et autant avant la réponse, et un temps de traitement de 10 ms par esclave. a) Calculez la durée d'un échange. b) Calculez le temps de rafraîchissement des 12 esclaves. c) Que devient-il à 19 200 bit/s ?
Voir le corrigé
a) Un caractère = 11 bits, soit 11 / 9 600 = 1,146 ms. Requête : 8 octets (adresse, fonction, 2 d'adresse, 2 de quantité, 2 de CRC), soit 8 × 1,146 = 9,2 ms. Réponse : adresse, fonction, nombre d'octets, 10 × 2 octets de données, 2 de CRC = 25 octets, soit 25 × 1,146 = 28,6 ms. Silences : 2 × 3,5 × 1,146 = 8,0 ms. Total : 9,2 + 28,6 + 8,0 + 10 = 55,8 ms. b) 12 × 55,8 ≈ 670 ms. c) À 19 200 bit/s, les temps de transmission sont divisés par 2 : (9,2 + 28,6 + 8,0) / 2 = 22,9 ms, plus 10 ms de traitement, soit 32,9 ms par esclave et 12 × 32,9 ≈ 395 ms. Conclusion : chaque donnée est rafraîchie toutes les 0,67 s à 9 600 bit/s, ce qui suffit pour de la mesure mais pas pour un asservissement ; doubler la vitesse ne divise pas le temps par 2, car le temps de traitement des esclaves ne change pas.
Exercice 4. Un maître envoie 05 03 01 2C 00 02 suivi du CRC. L'esclave répond 05 83 02 81 30. a) Que signifie cette réponse ? b) Le câblage est-il en cause ? c) Citez deux causes probables.
Voir le corrigé
a) Le code fonction renvoyé est 0x83 = 0x03 + 0x80 : c'est une réponse d'exception à une requête de fonction 03. Le code d'exception est 02 : adresse de données illégale. L'esclave 5 ne possède pas de registres de maintien aux adresses demandées, 0x012C = 300 et 301. b) Non : l'esclave a reçu la requête, a vérifié son CRC et a répondu. La liaison, la vitesse, la parité et l'adresse d'esclave sont correctes. c) Le décalage de 1 entre numéro et adresse : si la notice donne les numéros 300 et 301, il fallait demander les adresses 299 et 300, et l'adresse 301 n'existe pas ; ou une donnée qui se trouve dans les registres d'entrée et se lit avec la fonction 04 ; ou encore une table d'échange d'une autre version de l'appareil. Conclusion : on corrige l'adresse ou la fonction dans le programme du maître, pas le câblage.
Exercice 5. Un compteur d'énergie fournit son index en Wh sur deux registres consécutifs (entier non signé de 32 bits). Le maître lit, dans l'ordre : 0x0001 puis 0xE240. a) Calculez l'index si le compteur envoie le mot de poids fort en premier. b) Quelle valeur affiche une supervision configurée dans l'ordre inverse ? c) Comment repérer cette erreur sur site ?
Voir le corrigé
a) 0xE240 = 14 × 4 096 + 2 × 256 + 4 × 16 + 0 = 57 344 + 512 + 64 = 57 920. Index = 1 × 65 536 + 57 920 = 123 456 Wh, soit 123,456 kWh. b) Dans l'ordre inverse, le mot de poids fort devient 0xE240 : 57 920 × 65 536 + 1 = 3 795 845 121 Wh, soit environ 3,8 GWh. c) La valeur est sans rapport avec l'afficheur du compteur, et surtout elle évolue par bonds de 65 536 Wh au lieu de croître régulièrement. Conclusion : l'index réel est 123,456 kWh ; on compare toujours la valeur lue à l'afficheur de l'appareil lors de la mise en service, puis on règle l'ordre des mots dans le pilote de communication.
Exercice 6. Une station de pompage comprend un automate, un pupitre IHM, un poste de supervision situé à 60 m dans le bureau d'exploitation, deux variateurs dotés d'un port Ethernet, et huit compteurs d'énergie répartis sur 250 m, équipés seulement d'un port RS-485 Modbus. Proposez une architecture de communication et justifiez-la : réseaux, topologies, câblage du bus, adressage.
Voir le corrigé
Niveau commande et supervision : un réseau Ethernet en étoile autour d'un commutateur industriel placé dans l'armoire, qui relie l'automate, le pupitre, les deux variateurs et le poste de supervision. Le lien de 60 m vers le bureau reste sous les 100 m d'un lien cuivre. Les variateurs sont pilotés par l'automate avec le protocole d'Ethernet industriel qu'il gère (échanges cycliques) ; la supervision lit l'automate en Modbus TCP ou par OPC UA. Tous les appareils reçoivent une adresse IP fixe dans le même sous-réseau, par exemple 192.168.1.10 à 192.168.1.50 avec le masque 255.255.255.0. Niveau terrain : les huit compteurs sur un bus RS-485 en Modbus RTU, dont l'automate est le maître (ou une passerelle Modbus TCP vers RTU si l'automate n'a pas de port série). Câble à paire torsadée blindée, chaîné de compteur en compteur sans étoile, 250 m pour 1 000 m admis à 9 600 bit/s, 9 appareils (les huit compteurs et le maître) pour 32 admis, une résistance de fin de ligne à chaque extrémité, blindage relié à la terre selon la notice, cheminement séparé des câbles moteurs des variateurs. Adresses d'esclave 1 à 8, vitesse et parité identiques sur tous. Conclusion : Ethernet en étoile pour ce qui demande du débit et plusieurs clients, bus série pour des compteurs qui n'ont que ce port ; la supervision reste séparée du réseau bureautique.
Exercice 7. Une cuve est équipée d'un capteur de niveau dont l'entrée analogique fournit un entier Brut de 0 à 10 000 points pour 0 à 100 %. La pompe de remplissage doit démarrer quand le niveau passe sous 20 % et s'arrêter quand il dépasse 80 %. Une alarme doit apparaître si le niveau reste sous 10 % pendant 30 s. a) Écrivez le programme en ST. b) Pourquoi deux seuils plutôt qu'un ? c) Quel langage choisiriez-vous si la cuve suivait un cycle « remplissage, chauffage, vidange » ?
Voir le corrigé
a) Déclarations : Brut : INT, Niveau : REAL, Pompe, Alarme : BOOL, Tempo : TON.
Niveau := INT_TO_REAL(Brut) * 100.0 / 10000.0;
IF Niveau < 20.0 THEN
Pompe := TRUE;
ELSIF Niveau > 80.0 THEN
Pompe := FALSE;
END_IF;
Tempo(IN := Niveau < 10.0, PT := T#30s);
Alarme := Tempo.Q;Vérification de la mise à l'échelle : pour Brut = 2 000, Niveau = 2 000 × 100 / 10 000 = 20 %. Entre 20 et 80 %, aucune branche du IF n'est exécutée : la variable Pompe garde sa valeur, ce qui réalise la mémoire. b) Avec un seul seuil, la pompe démarrerait et s'arrêterait sans cesse autour de ce niveau, au gré des remous. L'écart entre les deux seuils (hystérésis) limite le nombre de démarrages du moteur. c) Le SFC : une étape par phase, des transitions sur les niveaux et la température, et les actions écrites en ST ou en LD. Conclusion : le ST convient au calcul et à la logique à seuils, le SFC à la séquence.
Sources
- Modbus Organization, Specifications and Implementation Guides : spécification du protocole applicatif (tables de données, codes fonction, exceptions, tailles de PDU et d'ADU), guide Modbus sur ligne série V1.02 (adresses 1 à 247, format des caractères, silences, câblage RS-485) et guide Modbus TCP (en-tête MBAP, port 502, identifiant d'unité).
- Commission électrotechnique internationale, IEC 61131-3:2025, Automates programmables, partie 3 : langages de programmation (édition 4.0, mai 2025) : la norme ne décrit plus que ST, LD, FBD et les éléments SFC.
- PROFIBUS & PROFINET International, présentation de Profinet : contrôleur, périphérique et superviseur IO, fichier GSD, temps réel, redondance en anneau MRP.
- ODVA, présentation d'EtherNet/IP : protocole CIP sur Ethernet standard, messages implicites et explicites, topologies étoile, ligne et anneau DLR.
Pour aller plus loin sur le site
Résumez cet article :
📖 Le glossaire de cet article
Les termes techniques abordés dans cet article, expliqués simplement.
- Condensateur — Un condensateur est un composant électronique qui stocke de l'énergie sous forme de champ électrique entre deux armatures conductrices séparées par un isolant (diélectrique).
- Fréquence — La fréquence est le nombre de cycles complets effectués par un courant alternatif en une seconde, exprimée en hertz (Hz).
- Hystérésis — L'hystérésis désigne le décalage entre l'excitation et la réponse d'un système, qui ne repasse pas par le même état à l'aller et au retour.
- Impédance — L'impédance (Z, en ohms) est la grandeur complexe qui généralise la résistance aux circuits en courant alternatif : elle intègre la résistance pure (R…
- Mode différentiel — Le mode différentiel désigne un signal ou une perturbation qui se propage entre les conducteurs d'une paire avec des phases opposées (180°), portant l…
- Passerelle Modbus — La passerelle Modbus est un équipement de communication qui assure la traduction entre deux réseaux utilisant des supports ou des protocoles différents, dont au moins un repose sur Modbus.
- Relais — Un relais est un interrupteur commandé par un signal électrique de faible puissance pour commuter un circuit de puissance plus élevée.
- Schéma électrique — Un schéma électrique est une représentation graphique symbolisée d'un circuit ou d'une installation, montrant les connexions entre composants à l'aide…
- Variateur de vitesse — Le variateur de vitesse est un appareil électronique qui fait varier la vitesse de rotation d'un moteur électrique en modifiant la fréquence et la tension qui lui sont appliquées.
- Électricité — L'électricité est le phénomène physique lié au déplacement de charges électriques — les électrons dans les conducteurs métalliques — à l'origine des c…
Téléchargez notre guide gratuit pour gagner du temps et de l'argent sur vos travaux électriques !
« * » indique les champs nécessaires