La communication de machine à machine est devenue l’épine dorsale de l’automatisation moderne., des minuscules capteurs aux contrôleurs et systèmes SCADA qui surveillent des installations entières. Au sein de cet écosystème, Modbus agit comme un langage commun permettant à des appareils très différents de communiquer de manière fluide et économique.
Né en 1979 pour les automates Modicon, Modbus est toujours pleinement valable. Dans les usines, les réseaux électriques, les bâtiments intelligents et les applications IoT industrielles. Son succès repose sur sa simplicité, son ouverture et sa large compatibilité, des qualités qui facilitent son intégration et sa maintenance, même dans des environnements exigeants.
Qu'est-ce que Modbus et comment fonctionne-t-il ?
Modbus est un protocole de communication ouvert conçu pour transporter des données entre des appareils électroniques. via des liaisons série ou des réseaux IP. Sa philosophie est simple : un périphérique central (maître ou client) fait des demandes et les appareils de terrain (esclaves ou serveurs) répondent avec des données ou des accusés de réception.
L'architecture classique est maître-esclave dans les environnements série et client-serveur dans TCP/IP.Dans un réseau série Modbus traditionnel, il peut y avoir un maître et jusqu'à 247 esclaves, chacun possédant sa propre adresse. Le maître interroge de manière ordonnée ; les esclaves ne répondent que lorsqu'ils sont interpellés par leur adresse.
Tous les messages Modbus partagent une structure logiqueIls intègrent un code de fonction qui détermine l'opération (par exemple, la lecture d'entrées discrètes, la lecture/écriture de registres) et un bloc de données associé. Cette approche uniforme simplifie l'analyse et le diagnostic entre les différents fabricants.
L’un des principaux avantages est que le format du message ne dépend pas de l’interface physique.Vous pouvez migrer du RS-485 vers Ethernet sans réécrire la logique du protocole : c'est l'encapsulation qui change, pas la sémantique. Ce découplage réduit les coûts de mise à niveau matérielle.

Modèle de données Modbus : types d'objets et accès
Modbus organise les informations en quatre classes d'objets, avec des tailles et des autorisations bien définies. Ce modèle est identique pour les variantes telles que RTU, ASCII, TCP et RTU sur TCP ; ce qui change, c'est l'enveloppe de transport, et non le modèle de données.
| Objet | Log in | Taille |
|---|---|---|
| Entrée discrète (entrée numérique) | Lecture seule | 1 Bits |
| Bobine (sortie numérique) | Lecture écriture | 1 Bits |
| Registre d'entrée | Lecture seule | 16 |
| Registre de détention | Lecture écriture | 16 |
L'ordre des octets pour les valeurs multi-octets dans les données Modbus est big-endian., c'est-à -dire que l'octet de poids fort (MSB) est transmis en premier. Ce détail est essentiel pour mapper des types composés tels que des entiers 32 bits ou des nombres flottants IEEE.
ADU et PDU : comment les messages sont encapsulés
Une trame Modbus se compose d'une ADU (Application Data Unit) qui encapsule une PDU (Protocol Data Unit)Le PDU est commun à toutes les variantes et contient le code de fonction et les données ; l'ADU ajoute l'adressage et la gestion des erreurs en fonction du support.
- ADU: Adresse/En-tête + PDU + Vérification des erreurs
- PDU: Code de fonction + Données
Selon la variante (RTU, ASCII ou TCP), la forme de l'ADU change, y compris les mécanismes de délimitation, la vérification des erreurs et les champs d'en-tête spécifiques au transport.
Formats de trame par variante
Toutes les implémentations Modbus utilisent l'un de ces formats de trame, adaptés à l'environnement physique ou au réseau IP sur lequel ils circulent.
Trame Modbus RTU (série, généralement RS-485)
RTU utilise un codage binaire compact et un CRC pour le contrôle des erreursLes trames doivent être émises en continu, sans espace entre les caractères, et sont séparées par des intervalles silencieux (≈ 3,5 fois le temps d'un caractère).
| Terrain | longueur | Description |
|---|---|---|
| Accueil | Temps de silence | Inactivité minimale (~3,5 caractères) à délimiter |
| Adresse | 8 | Identifiant de l'esclave |
| Fonction | 8 | Opération demandée (par exemple, lecture de bobines ou de registres de maintien) |
| Données | n × 8 bits | Paramètres et/ou charge utile |
| CRC | 16 | Contrôle de redondance cyclique |
| fin | Temps de silence | Inactivité minimale (~3,5 caractères) entre les images |
CRC-16 (ANSI/IBM) sur Modbus RTU: polynôme x^16 + x^15 + x^2 + 1 (0x8005, inverse 0xA001) de valeur initiale 0xFFFF. Exemple de réponse en hexadécimal : 01 04 02 FF FF B8 80 ; le calcul CRC sur 01…FF produit 0x80B8, transmis en ordre little-endian (octet de poids faible en premier : B8 80).
Trame ASCII Modbus (série avec caractères imprimables)
ASCII représente chaque octet sous forme de deux caractères hexadécimaux lisibles par l'homme., délimite avec deux points au début et CR/LF à la fin, et utilise LRC comme somme de contrôle.
LRC2 octets Somme de contrôle ASCII longitudinale (complément à deux d'une addition de 8 bits)
| Terrain | longueur | Description |
|---|---|---|
| Accueil | Octets 1 | Caractère : (0x3A) |
| Adresse | 2 octets ASCII | Valeur de 8 bits exprimée sous forme de deux hexadécimaux |
| Fonction | 2 octets ASCII | Code de fonction |
| Données | n × 2 octets ASCII | Contenu en paires hexadécimales |
| fin | Octets 2 | CR (0x0D) + LF (0x0A) |
Exemple de LRCAvec les octets 247, 3, 19, 137, 0 et 10, la somme est de 416 ; son complément à deux tronqué à 8 bits est de 96 (0x60). La trame serait : F7031389000A60 .
Trame Modbus TCP (Ethernet)
Dans TCP/IP, Modbus voyage avec un en-tête MBAP Ce qui facilite le multiplexage des transactions et la passerelle vers les réseaux série. Aucune somme de contrôle distincte n'est ajoutée, car TCP/IP intègre déjà le contrôle d'intégrité.
| Terrain (MBAP + PDU) | longueur | Description |
|---|---|---|
| ID | Octets 2 | Corrélation requête-réponse |
| ID du protocole | Octets 2 | Toujours 0 pour Modbus/TCP |
| longueur du câble | Octets 2 | Taille restante (ID d'unité + PDU) |
| ID de l'unité | Octets 1 | Adresse de l'appareil derrière une passerelle (ou 255 si non applicable) |
| Code de fonction | Octets 1 | Opération demandée |
| Données | n octets | Paramètres et charge utile |
L'ID d'unité permet d'adresser les périphériques RTU derrière une passerelle Modbus TCP–RTUSur les appareils purement TCP, ce service est souvent ignoré. Il utilise le port 502 et est normalisé (IEC 61158, cité dans l'IEC 61784-2 comme CPF 15/1).
Variantes Modbus : un aperçu complet
Il existe plusieurs versions de Modbus pour différents supports et exigences.Ils partagent un modèle de données et des fonctions de base ; ils diffèrent dans la manière dont ils encapsulent et transportent le PDU.
- Modbus RTU: L'implémentation binaire la plus courante sur les liaisons série telles que RS-485. Elle utilise le CRC-16 et nécessite des transmissions contiguës sans interruption.
- Modbus ASCII: Variante série avec caractères imprimables et LRC. Moins utilisée aujourd'hui, mais utile lorsque la lisibilité et le débogage manuel sont prioritaires.
- Modbus TCP/IP (Modbus TCP):Fonctionne sur les réseaux IP, port 502. Client-serveur, pas de somme de contrôle supplémentaire au niveau de l'application.
- Modbus sur TCP/RTU-IP: encapsule RTU sur TCP, y compris le CRC dans la charge utile, utile pour transporter les trames RTU telles quelles.
- Modbus sur UDP:Il existe des implémentations expérimentales pour réduire la surcharge TCP en sacrifiant les performances de connexion.
- Modbus Plus (MB+, propriétaire):Le réseau haut débit de Schneider Electric, doté de communications peer-to-peer entre plusieurs maîtres, HDLC et 1 Mbit/s sur paire torsadée ; nécessite du matériel spécifique (cartes ISA/PCI/PCMCIA).
- Pemex Modbus:extension avec prise en charge des données historiques et des mesures de débit, conçue pour PEMEX ; elle n'a pas été largement adoptée.
- Enron Modbus: extension qui ajoute des entiers 32 bits, des flottants et des données historiques/de flux, mappés à des adresses standard avec un alignement de type conformément aux pratiques de l'API.
Les quatre premières variantes (RTU, ASCII, TCP et RTU sur TCP) partagent le même modèle d'appel et de données., mais ils ne sont pas interopérables entre eux au niveau de la trame : l'encapsulation change et, par conséquent, la couche de câblage/physique ou le réseau.
Avantages pratiques de Modbus dans l'industrie
La popularité de Modbus n’est pas une coïncidence:Il est ouvert, gratuit, facile à mettre en œuvre et hautement interopérable, ce qui réduit les barrières entre les fabricants et rend l'intégration moins coûteuse.
- Facilité de mise en œuvre:peu d'exigences (un port série ou Ethernet) et une pile simple.
- Haute compatibilité:des équipes hétérogènes cohabitent sans dépendre d'un fournisseur unique.
- Fiabilité: RTU intègre le CRC en standard ; dans TCP, il s'appuie sur la pile IP.
- Flexibilité: Prend en charge RS-232, RS-485 et Ethernet ; diverses topologies.
- Faible coût:Il n'y a pas de licences et le développement est léger.
Dans son mode TCP/IP, les infrastructures LAN existantes sont également utilisées. avec des vitesses typiques de 10 à 100 Mbit/s, facilitant l'évolutivité et la gestion centralisée.
Limitations et variations courantes
Tout n’est pas avantageux ; il y a aussi des restrictions. dérivé de sa conception originale pour PLC à la fin des années 70.
- Diagnostic et rapports limités:Le schéma maître-esclave nécessite une interrogation périodique ; il n'existe pas de « rapport par exception » série standard (il existe des implémentations Ethernet avec des notifications spécifiques).
- Adressage limité sur bus série: jusqu'à 254 appareils par liaison de données en RTU/ASCII.
- Transmission contiguë: Les cadres ne prennent pas en charge les espaces ; tous les supports distants ne tolèrent pas cela sans mise en mémoire tampon.
- Sécurité native inexistante:Il n'intègre pas d'authentification ni de cryptage ; il doit être renforcé par des VPN, des pare-feu, des ACL, etc.
- Types de données historiques:La norme de base se concentre sur 1 bit et 16 bits ; les objets binaires volumineux ne sont pas pris en charge.
- Métadonnées variables:Il n’existe pas de méthode standard pour annoncer la signification/l’échelle d’un record (par exemple, « température de 30 à 175 °C »).
Variations fréquentes de mise en œuvre Il s'agit notamment des flottants IEEE 754, des entiers 32 bits, des données 8 bits compressées, des champs de bits dans des entiers, des multiplicateurs (10, 100, 1000, 256) pour la mise à l'échelle des grandeurs, des adresses esclaves étendues à 16 bits ou des réponses 32 bits par adresse sur certains appareils.
Couches physiques et RS-485 : notes de terrain
- Longue distance: jusqu'à ~1200 m avec des vitesses réglables selon le tronçon.
- Multipoint:des dizaines de nœuds partagent le même bus avec un adressage logique.
- Les bonnes pratiques: terminaisons, polarisation et topologies de bus (éviter les « étoiles »).
Par rapport au RS-232, le RS-485 est préférable pour les longues distances et les réseaux avec plusieurs appareils., en maintenant les coûts bas et le câblage simple.
Études de cas réels
Migration d'installation : de RTU vers TCP avec passerelle
Un fabricant de composants automobiles avait besoin d'étendre sa production et est passé d'un réseau Modbus RTU pur à un environnement mixte avec Modbus TCP / IP via Ethernet CAT6. Le RS-485 d'origine a été conservé pour les équipements existants et un Passerelle Modbus TCP–RTU pour acheminer les données entre les deux mondes, en réalisant une mise à l'échelle sans arrêter l'usine.
Service public d'électricité : SCADA sur Modbus TCP avec renforcement de la cybersécurité
Une entreprise d'électricité a modernisé son SCADA migration du RTU traditionnel vers Modbus TCP/IP sur un réseau Ethernet privé. Compte tenu des exigences de sécurité, il a déployé VPN entre sous-stations, commutateurs gérés, pare-feu y contrôle d'accès basé sur les rôlesRésultat : Surveillance et contrôle à haute disponibilité, avec une exposition réduite aux intrusions à distance.
API Modbus de bas niveau dans LabVIEW : contrôle et redondance
Lorsque vous devez affiner les séquences et le timing, l'API de bas niveau LabVIEW pour Modbus est la solution idéale.Il offre de la flexibilité, mais exige une plus grande responsabilité dans la gestion des états et des erreurs.
Exemple d'introduction (Modbus Library.lvproj)- Dans une implémentation typique, une instance maître (TCP ou série) est créée, des fonctions sont émises telles que Lire les registres d'entrée et la session est fermée en libérant la connexion TCP ou la ressource NI-VISA. Le modèle est le modèle classique d'ouverture-lecture/écriture-fermeture, avec des différences entre le maître (requêtes via le réseau) et l'esclave (fonctionne sur son stockage local).
Exemple avancé avec des maîtres redondants: une architecture avec deux enseignants actifs interroger le même esclave ; si l'on perd la connexion à l'esclave ou à l'IHM, l'autre suppose fonctionnement ininterrompu. C'est une approche utile lorsque l'objectif est Tolérance aux pannes devant des passerelles ou des capteurs critiques.
Modbus TCP en pratique
Modbus TCP établit un schéma client-serveur Ce qui fonctionne à merveille sur les réseaux locaux ; le fait de conserver les nœuds sur le même sous-réseau simplifie la découverte et la gestion. Toutes les requêtes sont acheminées via le port 502/TCP, généralement dans demi-duplex par connexion : il n'y a aucun avantage à empiler les requêtes sans attendre de réponse.
L'adresse de l'appareil peut être utilisée pour atteindre les nœuds RTU via des passerelles. en référençant l'IP de la passerelle et l'ID de l'appareil distant. Modbus/TCP est normalisé depuis 2007 (IEC 61158 et IEC 61784-2).
RTU vs. TCP vs. ASCII : quand utiliser chacun d'eux ?
Modbus RTU brille dans les bus série robustes et économiques ; Modbus TCP Il est idéal lorsque vous souhaitez évoluer, intégrer au LAN/IT et connecter de nombreux appareils ; Modbus ASCII Il a aujourd’hui une utilité résiduelle, utile dans les environnements où la lecture des tracés « à l’œil nu » est encore précieuse.
- RTU:Binaire compact, CRC, idéal pour les courtes/moyennes distances avec RS-485.
- TCP: Ethernet/IP, vitesse et portée supérieures, adresses IP illimitées.
- ASCII: lisible, avec LRC, utile pour le débogage et la compatibilité historique.
Logiciels pris en charge : SCADA et IHM
Modbus est omniprésent dans Plateformes SCADA/IHMLes solutions qui fournissent généralement un support natif incluent Citect, ICONICS, iFIX, InduSoft, InTouch/Wonderware, Trace Mode, Wizcon, Entivity (Studio/Live/VLC), entre autres.
Applications : énergie, BMS et mobilité électrique
Intégré au SCADA, Modbus fournit une vue centralisée de l'état et du fonctionnement des actifs énergétiques. (sous-stations, centres de transformation, automatisation de la distribution), permettant une maintenance prédictive et une disponibilité améliorée.
Dans les systèmes de gestion des bâtiments (BMS)Modbus permet d'orchestrer la climatisation, l'éclairage, les groupes électrogènes ou encore le stockage, avec un impact direct sur l'efficacité énergétique et les coûts.
Dans la recharge des véhicules électriques, Modbus assure l’interopérabilité avec les onduleurs et les compteurs intelligents.Par exemple, la borne de recharge Trydan Il utilise Modbus RTU pour exploiter et lire les compteurs à distance, en s'intégrant aux systèmes photovoltaïques ; les chargeurs Pole Pro Ils peuvent être connectés via Modbus TCP pour un contrôle précis de la charge.
Des entreprises spécialisées comme Cuerva placent les données au centre pour détecter les inefficacités, optimiser les installations et déployer des plans de maintenance prédictive, préventive et corrective qui augmentent la fiabilité des équipements.
Comment connecter un réseau Modbus : clés et paramètres
Avant le câblage, procurez-vous la documentation du fabricant Pour comprendre la cartographie des enregistrements et les paramètres de communication. C'est le GPS du projet.
- Physique: RTU sur RS-485/RS-232 ; TCP sur Ethernet (connecteurs RJ45/IP65 dans les environnements industriels).
- Paramètres: débit en bauds, bits de données/parité/arrêt (en série), IP/ports (en TCP), adresse esclave/ID d'unité.
- Archives: connaître les adresses des bobines/entrées/registres de maintien/d'entrée et des échelles (multiplicateurs, décalages).
Dans TCP, chaque appareil utilise une adresse IP. La communication est encapsulée dans des paquets TCP/IP. Sur un bus série, les terminaisons, les longueurs et les dérivations sont prises en charge afin que le signal arrive correctement.