Réponse directe : Modbus est un protocole de communication maître-esclave publié en 1979, disponible en RS-485 série (Modbus RTU) et sur Ethernet/IP (Modbus TCP, port 502). En supervision énergétique industrielle, il est le standard de facto pour les compteurs d’énergie électrique, variateurs de fréquence et onduleurs. Simple, ouvert et robuste, il compense ses limites (absence de pub/sub, pas de découverte automatique, pas de sécurité) par son coût et sa compatibilité universelle. Pour comprendre sa place dans l’écosystème protocoles GTB, consultez notre comparatif protocoles GTB KNX / Modbus / BACnet.
Points clés à retenir
- Modbus RTU : RS-485 série, jusqu’à 32 appareils/segment, 1 200 m, 115 200 bps max. Modbus TCP : Ethernet, port 502, distance illimitée
- 4 tables de registres : Coils (0x), Discrete Inputs (1x), Input Registers (3x), Holding Registers (4x) — codes fonction FC01, FC03, FC04, FC06, FC16
- Standard de facto pour les compteurs d’énergie (Schneider iEM, ABB B-Series, Siemens SENTRON, Carlo Gavazzi EM 24) et variateurs de fréquence
- Limites structurelles : polling uniquement (pas de pub/sub), pas de découverte automatique, pas de sécurité native, pas de modèle sémantique
- Câblage RS-485 : bus linéaire daisy-chain, résistances 120 Ω aux deux extrémités, câble blindé 120 Ω, 32 appareils max par segment sans répéteur
Dans un atelier de production ou une chaufferie d’immeuble tertiaire, les équipements qui exposent des données de consommation énergétique sont rarement tous issus du même fabricant. Le compteur d’énergie électrique est un Schneider, le variateur de fréquence est un ABB, l’onduleur est un SMA, le groupe de froid est piloté par un automate Siemens. Modbus est le seul protocole que tous ces équipements parlent nativement, sans passerelle supplémentaire. C’est cette compatibilité universelle — et non ses qualités techniques supérieures — qui explique pourquoi Modbus reste le protocole de supervision énergétique le plus déployé au monde, 45 ans après sa création.
Histoire et variantes : Modbus RTU, ASCII et TCP
Modbus est né en 1979 dans les usines de Modicon, fabricant d’automates programmables racheté par Schneider Electric en 1994. Sa conception reflète les contraintes de l’époque : liaisons série lentes, microcontrôleurs aux ressources limitées, topologies bus en câble bifilaire. Trois variantes coexistent :
- Modbus RTU (Remote Terminal Unit) : variante binaire sur RS-485 (ou RS-232 en point-à-point). Chaque message est encodé en binaire compact avec CRC-16 pour la détection d’erreurs. C’est la variante dominante pour les équipements de terrain : compteurs d’énergie, variateurs, pompes, compresseurs. Avantages : faible overhead, robustesse RS-485 dans les environnements industriels (perturbations électromagnétiques, température). Débit : 9 600 bps (défaut usine) à 115 200 bps
- Modbus ASCII : variante lisible en ASCII sur RS-232. Chaque octet de données est encodé en 2 caractères hexadécimaux — overhead x2 par rapport à RTU, mais les trames sont lisibles avec un terminal série. Rare aujourd’hui, utilisé principalement pour le débogage ou les équipements très anciens
- Modbus TCP : variante sur Ethernet/IP, port 502. Le protocole applicatif Modbus est encapsulé dans une trame MBAP (Modbus Application Protocol) de 6 octets, elle-même dans une trame TCP. La notion de maître-esclave est assouplie : plusieurs clients TCP peuvent interroger simultanément un serveur Modbus TCP. C’est la variante des équipements modernes : compteurs d’énergie récents, onduleurs solaires, analyseurs de réseau, passerelles IoT
Une quatrième variante, Modbus UDP, existe pour les applications temps-réel nécessitant une latence minimale (pas de handshake TCP), mais reste marginale. À noter que Modbus TCP et Modbus RTU sont les deux variantes référencées dans les fiches CEE (notamment la fiche IND-BA-110 sur les systèmes de gestion technique), les deux étant acceptées comme interfaces de communication pour les sous-compteurs.
Modèle de données : les 4 tables de registres et les codes fonction
Le modèle de données Modbus est minimaliste : 4 tables de données adressables, sans notion de type, d’unité ou de signification. C’est la table de registres du fabricant qui donne du sens aux adresses.
- Coils (0x, bobines) : registres 1 bit en lecture/écriture. Représentent des sorties tout-ou-rien : relais, voyants, commandes marche/arrêt. Lus avec FC01 (Read Coils), écrits avec FC05 (Write Single Coil) ou FC15 (Write Multiple Coils). Adresses : 00001 à 09999
- Discrete Inputs (1x, entrées discrètes) : registres 1 bit en lecture seule. Représentent des entrées tout-ou-rien : états de capteurs, pressostat, fin de course. Lus avec FC02. Adresses : 10001 à 19999
- Input Registers (3x, registres d’entrée) : registres 16 bits en lecture seule. Mesures physiques : courant, tension, température, pression. Lus avec FC04 (Read Input Registers). Pour les valeurs en virgule flottante 32 bits, deux registres consécutifs sont lus ensemble. Adresses : 30001 à 39999
- Holding Registers (4x, registres de maintien) : registres 16 bits en lecture/écriture. Consignes, paramètres de configuration, données cumulées (kWh). Lus avec FC03 (Read Holding Registers), écrits avec FC06 (Write Single Register) ou FC16 (Write Multiple Registers). Adresses : 40001 à 49999
En pratique, la distinction entre Input Registers (3x) et Holding Registers (4x) est souvent ignorée par les fabricants : beaucoup exposent toutes leurs mesures en Holding Registers (FC03) pour simplifier l’intégration. Vérifier toujours la table de registres du manuel technique, en notant si les adresses sont en base 0 (0 à 65535) ou en base 1 (1 à 65536) — source fréquente d’erreurs de 1 dans l’adresse de registre.

Tableau des registres Modbus types pour compteur d’énergie et variateur de fréquence
| Équipement | Grandeur mesurée | Adresse registre (ex. type) | Code fonction | Format |
|---|---|---|---|---|
| Compteur énergie (ex. Schneider iEM3255) | Énergie active totale (kWh) | 45002-45003 | FC03 | Float 32-bit |
| Compteur énergie | Puissance active totale (kW) | 45012-45013 | FC03 | Float 32-bit |
| Compteur énergie | Tension phase 1 (V) | 45004-45005 | FC03 | Float 32-bit |
| Compteur énergie | Intensité phase 1 (A) | 45008-45009 | FC03 | Float 32-bit |
| Compteur énergie | Facteur de puissance | 45020-45021 | FC03 | Float 32-bit |
| Variateur fréquence (ex. ABB ACS880) | Fréquence de sortie (Hz) | 40002 | FC03 | Int 16-bit ×0,01 |
| Variateur fréquence | Courant moteur (A) | 40004 | FC03 | Int 16-bit ×0,1 |
| Variateur fréquence | Mot d’état (marche/défaut) | 40001 | FC03 | Bitfield 16-bit |
| Variateur fréquence | Consigne vitesse (0-20 000 = 0-100 %) | 40003 | FC06 | Int 16-bit |
| Onduleur solaire (ex. SMA Sunny Tripower) | Puissance AC totale (W) | 30775-30776 | FC04 | S32 Big-Endian |
Usages Modbus en supervision énergétique : compteurs, variateurs, onduleurs
La supervision énergétique industrielle et tertiaire utilise Modbus dans quatre familles d’applications principales, où sa simplicité et son universalité compensent ses limites structurelles.
- Compteurs d’énergie électrique multi-énergie : pratiquement tous les compteurs du marché proposent Modbus RTU ou TCP. Un GTB ou SCADA interroge les compteurs de sous-comptage toutes les 10 à 60 secondes pour construire des bilans de consommation par zone, par machine ou par ligne de production. Déployer 50 compteurs Modbus TCP sur le réseau IP d’un site industriel est une opération standard, avec une configuration de quelques heures par contrôleur
- Variateurs de fréquence (VFD) : les variateurs de pompes, compresseurs, ventilateurs et convoyeurs exposent via Modbus leur état (marche/arrêt, défaut), leurs mesures (courant moteur, fréquence de sortie, puissance consommée) et acceptent des consignes de vitesse. La GTB peut ainsi lire la consommation réelle d’un compresseur à chaque instant et optimiser sa vitesse selon la pression réseau
- Onduleurs et UPS (onduleurs statiques) : les onduleurs de secours exposent en Modbus leur statut (réseau / batterie / décharge), la charge alimentée, l’autonomie restante et les alarmes. La supervision énergétique utilise ces données pour gérer les plans de délestage
- Onduleurs solaires photovoltaïques : les onduleurs solaires (SMA, Fronius, Huawei, SolarEdge) exposent en Modbus TCP la production instantanée (kW), l’énergie journalière et totale (kWh), les tensions et courants DC par string. La GTB consolide ces données avec les consommations des compteurs pour calculer le taux d’autoconsommation en temps réel

Limites de Modbus : pourquoi BACnet et OPC-UA le complètent
Modbus a été conçu pour des réseaux industriels des années 1970 : il manque de plusieurs fonctionnalités aujourd’hui indispensables dans une GTB ou une plateforme de supervision énergétique avancée.
- Polling obligatoire, pas de pub/sub : le maître Modbus doit interroger chaque esclave cycliquement, même si la valeur n’a pas changé. Sur 200 compteurs interrogés toutes les 10 secondes avec 10 registres chacun, cela représente 2 000 transactions Modbus par minute en permanence — charge réseau et CPU constante, sans possibilité de notification sur seuil (contrairement au COV BACnet)
- Pas de découverte automatique : Modbus ne sait pas quels esclaves sont présents sur le bus. La supervision doit être configurée manuellement avec l’adresse Modbus (1 à 247) de chaque équipement. En cas d’ajout d’un nouveau compteur, il faut reconfigurer le système de supervision. BACnet résout ce problème avec Who-Is/I-Am
- Pas de modèle sémantique : le registre 40045 peut être une tension, une pression ou un code d’état selon le fabricant. Il n’existe pas de registre standard « puissance active » en Modbus — chaque fabricant place cette valeur où il veut. À l’inverse, en BACnet, l’objet Analog Input « puissance active » est identique quel que soit le fabricant
- Pas de sécurité native : Modbus TCP n’intègre aucun mécanisme d’authentification ni de chiffrement. Toute machine connectée au réseau IP peut écrire dans les registres d’un variateur de fréquence ou d’un disjoncteur intelligent. Solution : isoler les équipements Modbus dans un VLAN dédié, non routé vers Internet, avec filtrage par pare-feu industriel (pare-feu OT de type Claroty, Nozomi ou Fortinet FortiGate pour OT)
- Pas de gestion d’alarmes : Modbus ne définit aucun mécanisme de notification. Le système de supervision doit poller un registre d’état, comparer la valeur lue à des seuils configurés localement et générer l’alarme. Il n’y a aucune garantie temporelle : une alarme peut être manquée si elle apparaît et disparaît entre deux cycles de polling
Ces limites expliquent la stratégie des GTB modernes : Modbus pour les compteurs d’énergie et les équipements industriels simples, BACnet pour les équipements CVC et la supervision bâtiment, OPC-UA pour les automates de production. Pour comprendre comment BACnet surmonte ces limites, consultez notre article sur BACnet, le standard de communication GTB. Pour la vision globale de la GTB, voir notre guide complet GTB 2026.
Câblage RS-485 Modbus RTU : règles pratiques et erreurs à éviter
La majorité des problèmes Modbus RTU en supervision énergétique industrielle sont d’origine câblage. Un bus RS-485 mal câblé génère des erreurs CRC intermittentes, des pertes de communication aléatoires et des valeurs corrompues — difficiles à diagnostiquer car ils ne se produisent pas systématiquement mais apparaissent sous charge (perturbations EMI, démarrages de moteurs, orage).
- Topologie bus linéaire obligatoire : chaque équipement doit être raccordé en daisy-chain au câble principal (raccordement T avec queue de poisson < 30 cm). Une topologie en étoile crée des réflexions de signal qui perturbent la communication, surtout à 115 200 bps. Si la topologie étoile est contrainte par le bâtiment, réduire la vitesse à 9 600 bps et utiliser des répéteurs RS-485
- Résistances de terminaison 120 Ω aux deux extrémités : placer exactement une résistance de 120 Ω entre les lignes A et B aux deux extrémités du bus (dernier appareil de chaque côté). Beaucoup d’équipements ont une résistance de terminaison interne activable par cavalier ou DIP switch — l’activer uniquement sur les deux appareils aux extrémités. Mettre des terminaisons au milieu du bus est aussi néfaste que de n’en mettre aucune
- Câble paire torsadée blindée 120 Ω : utiliser un câble spécifié RS-485 (Belden 9841, Alpha Wire 5461 ou équivalent). L’impédance caractéristique de 120 Ω correspond aux résistances de terminaison. Ne pas utiliser de câble d’alarme ou de câble téléphonique ordinaire (impédance différente, résistances de terminaison inadaptées). Le blindage (drain wire) doit être raccordé à la terre en un seul point — côté maître Modbus — pour éviter les boucles de masse qui induisent des perturbations
- Résistances de polarisation (bias) : en l’absence de communication, les lignes RS-485 sont dans un état indéfini. Les résistances de polarisation (pull-up sur A, pull-down sur B, typiquement 560 Ω à 1 kΩ) définissent l’état de repos du bus. N’activer les polarisations que sur le maître Modbus — certains équipements les ont intégrées et activées par défaut. Plusieurs sources de polarisation sur le même bus créent des courants de conflit qui perturbent la communication
Cas pratique : supervision énergétique d’un site industriel avec 80 compteurs Modbus
Un site industriel agroalimentaire (45 000 m² bâtis, 12 MW de puissance souscrite, 5 bâtiments) déploie un système de sous-comptage Modbus pour atteindre les exigences de son audit ISO 50001. Architecture déployée :
- 80 compteurs d’énergie : 60 compteurs Schneider iEM3255 en Modbus TCP (réseau IP, 1 par armoire de distribution principale et secondaire), 20 compteurs Carlo Gavazzi EM24 en Modbus RTU RS-485 (anciens équipements, câblés en 5 boucles de 4 compteurs, 9 600 bps)
- 15 variateurs de fréquence : compresseurs d’air, pompes eau glacée, ventilateurs CTA. Exposition de leur puissance réelle en Modbus TCP — corrélation avec les horaires de production pour calculer l’IPE (indicateur de performance énergétique) par ligne
- Passerelle RS-485 vers TCP : 5 passerelles Modbus RTU-to-TCP (Advantech EKI-1221) pour connecter les boucles RS-485 existantes au réseau IP central. Chaque passerelle sert de proxy transparent : le superviseur voit tous les compteurs en Modbus TCP, quelle que soit la couche physique sous-jacente
- Superviseur : plateforme SCADA avec module énergétique (Ignition Inductive Automation) interrogeant les 80 compteurs + 15 variateurs toutes les 30 secondes, stockant les données dans un historien (PostgreSQL). Tableaux de bord consommation par bâtiment, par ligne et par utilité, disponibles en temps réel sur mobile
Résultats sur 18 mois : identification de 3 fuites d’air comprimé (compresseurs tournant la nuit sans production), détection d’un variateur de pompe fonctionnant à pleine charge au lieu de suivre la demande (-30 kW constant), optimisation des horaires de démarrage des groupes de froid (-8 % sur le poste électricité froid). Économies totales : 65 000 €/an. Le sous-comptage Modbus a constitué l’infrastructure de données du plan de management de l’énergie ISO 50001, obtenu 14 mois après le déploiement. Pour les liens avec la GTB bâtiment, voir notre article sur la performance énergétique GTB et les économies réelles.
En résumé
Modbus supervision énergétique : protocole maître-esclave ouvert (RS-485 pour le terrain, TCP/IP pour le réseau LAN, port 502), avec 4 tables de registres (Coils, Discrete Inputs, Input Registers, Holding Registers) et des codes fonction standardisés (FC01, FC03, FC04, FC06, FC16). Standard de facto pour les compteurs d’énergie (Schneider iEM, ABB B-Series, Siemens SENTRON), variateurs de fréquence et onduleurs solaires, il compense ses limites (polling obligatoire, pas de découverte, pas de sécurité) par son coût quasi nul et sa compatibilité universelle. Dans une GTB moderne, Modbus couvre le comptage énergétique et les équipements industriels, pendant que BACnet supervise la CVC et qu’OPC-UA s’interface avec les automates de production. Un câblage RS-485 rigoureux (bus linéaire daisy-chain, terminaisons 120 Ω aux extrémités, câble blindé 120 Ω) est la condition sine qua non d’un fonctionnement stable à long terme.
Questions fréquentes
Qu'est-ce que le protocole Modbus et pourquoi est-il encore si répandu ?
Modbus est un protocole de communication série publié en 1979 par Modicon (aujourd'hui Schneider Electric) pour la communication entre automates programmables industriels. C'est l'un des protocoles les plus anciens encore utilisés dans l'industrie et le bâtiment — et sa longévité s'explique par trois caractéristiques essentielles : il est simple (facile à implémenter dans un microcontrôleur bas de gamme), ouvert (aucune licence, spécification publique gratuite) et robuste (le transport RS-485 résiste aux environnements industriels perturbés). En supervision énergétique, Modbus est le standard de facto pour les compteurs d'énergie : pratiquement tous les compteurs électriques multi-énergie du marché (Schneider iEM, ABB B-Series, Siemens SENTRON, Carlo Gavazzi EM 24) proposent Modbus RTU ou TCP comme interface de communication principale. Un système de supervision (GTB, SCADA, plateforme IoT) qui supporte Modbus peut ainsi interroger des centaines de compteurs hétérogènes. La contrepartie de cette simplicité est l'absence de standardisation sémantique : deux compteurs Modbus du même type mais de fabricants différents exposent leurs mesures dans des registres différents — il faut la table de registres du fabricant pour chaque modèle.
Quelle est la différence entre Modbus RTU et Modbus TCP ?
Modbus RTU et Modbus TCP sont deux variantes du même protocole applicatif Modbus, mais avec des couches de transport différentes. Modbus RTU utilise une liaison série RS-485 (ou RS-232 pour les connexions point-à-point) : codage binaire compact, débit de 9 600 bps à 115 200 bps, jusqu'à 32 appareils par segment RS-485 (247 avec répéteurs), distance maximale 1 200 m avec câble 120 Ω. La communication est strictement maître-esclave : un seul maître interroge les esclaves à tour de rôle. Il n'y a pas de collision possible, mais pas de communication spontanée non plus. Modbus TCP encapsule le même protocole applicatif dans des trames TCP/IP sur Ethernet (port 502). Avantages : vitesse réseau standard (100 Mbps), distance illimitée via routage IP, plusieurs maîtres possibles (toute machine TCP peut interroger un esclave). Modbus TCP est aujourd'hui dominant pour les nouveaux équipements (compteurs d'énergie récents, onduleurs solaires, analyseurs de réseau). En pratique, une supervision énergétique d'un site industriel utilise souvent les deux : Modbus RTU pour les compteurs anciens câblés en RS-485, Modbus TCP pour les nouveaux équipements connectés au réseau LAN.
Quels registres Modbus lire pour superviser un compteur d'énergie ?
Les registres Modbus d'un compteur d'énergie sont organisés en Holding Registers (table 4x, lus avec le code fonction FC03) et Input Registers (table 3x, lus avec FC04). Les mesures sont généralement stockées sur 2 registres de 16 bits consécutifs (format 32-bit IEEE 754 float ou entier 32-bit selon le fabricant). Sur un compteur Schneider iEM3255 par exemple : énergie active totale (kWh) aux registres 45002-45003, puissance active totale (kW) aux registres 45012-45013, tension phase 1 (V) aux registres 45004-45005, intensité phase 1 (A) aux registres 45008-45009, facteur de puissance aux registres 45020-45021. Ces adresses varient selon le modèle et le fabricant : la table de registres du manuel technique est indispensable. Pour les variateurs de fréquence (VFD), les registres Holding (FC03/FC06) permettent également d'écrire la consigne de fréquence et de lire l'état de fonctionnement (marche, défaut, courant moteur, couple). Un point d'attention : certains registres 32-bit sont stockés en « Big Endian » (mot de poids fort en premier), d'autres en « Little Endian » — la bibliothèque de supervision doit être configurée en conséquence, sous peine de valeurs absurdes.
Quelles sont les principales limites de Modbus pour la GTB et la supervision énergétique ?
Modbus présente cinq limitations structurelles qui expliquent pourquoi il est complété ou remplacé par BACnet ou OPC-UA dans les GTB modernes. Premièrement, l'absence de publication/souscription (pub/sub) : Modbus est pur polling — le maître doit interroger chaque esclave cycliquement. Sur 100 compteurs avec un cycle de 10 secondes, cela génère une charge réseau et CPU continue, sans possibilité de notification sur événement. Deuxièmement, l'absence de découverte automatique : contrairement à BACnet (Who-Is/I-Am), Modbus ne sait pas quels esclaves sont présents sur le bus. Le système de supervision doit être configuré manuellement avec l'adresse Modbus de chaque équipement et sa table de registres. Troisièmement, l'absence de modèle sémantique : les registres sont des adresses numériques sans signification inhérente. La valeur au registre 40001 peut être une température, une puissance ou un code d'état selon le fabricant. Quatrièmement, l'absence de sécurité native : Modbus TCP n'intègre aucun mécanisme d'authentification ni de chiffrement. N'importe quelle machine sur le réseau peut lire et écrire les registres — risque critique pour les équipements pouvant être commandés (variateurs, disjoncteurs intelligents). Cinquièmement, l'absence de gestion d'alarmes : Modbus ne définit aucun mécanisme de notification d'alarme. La supervision doit poller un registre de statut et comparer sa valeur à des seuils configurés localement.
Comment câbler un bus Modbus RS-485 correctement pour éviter les problèmes ?
Un bus Modbus RS-485 mal câblé est la première source de problèmes intermittents en supervision énergétique industrielle. Cinq règles fondamentales doivent être respectées. Première règle : la topologie doit être un bus linéaire en daisy-chain (chaque équipement est raccordé au câble principal), pas en étoile. Une topologie en étoile crée des réflexions de signal qui perturbent la communication, surtout à haute vitesse. Deuxième règle : placer des résistances de terminaison de 120 Ω exactement aux deux extrémités du bus — jamais ailleurs. La résistance de terminaison absorbe les réflexions sur le câble. Une terminaison manquante ou mal placée est la cause n°1 des erreurs CRC Modbus intermittentes. Troisième règle : utiliser un câble paire torsadée blindée, impédance caractéristique 120 Ω (Belden 9841 ou équivalent). Le blindage doit être raccordé à la terre en un seul point (côté maître) pour éviter les boucles de masse. Quatrième règle : activer les résistances de polarisation (pull-up/pull-down) du maître Modbus uniquement — certains équipements en ont en interne, ce qui peut créer des conflits si plusieurs appareils polarisent le bus simultanément. Cinquième règle : limiter le nombre d'appareils à 32 par segment sans répéteur (la norme RS-485 garantit 32 unités de charge). Au-delà, utiliser un répéteur RS-485 qui isole et régénère le signal.
