RS-485 et Modbus ne sont pas des alternatives : RS-485 est une couche physique et Modbus est un protocole. La liaison RS485 (norme TIA/EIA-485, souvent écrite RS-485) est une interface série : elle définit le signal électrique sur une paire torsadée et le nombre d’appareils pouvant la partager. Modbus définit les requêtes, les adresses des appareils et les registres transportés par une liaison. Modbus RTU utilise le plus souvent RS-485, d’où leur association courante, mais Modbus TCP fonctionne sur Ethernet sans RS-485.
Qu’est-ce que Modbus ? explique le protocole lui-même : le modèle de données, les codes de fonction et une requête complète avec sa réponse.
RS485 et Modbus : la différence
| RS-485 | Modbus | |
|---|---|---|
| Nature | Une norme d’interface électrique, TIA/EIA-485-A | Un protocole de communication publié par la Modbus Organization |
| Couche | Couche physique (couche OSI 1) | Protocole applicatif (couche 7), avec un protocole de ligne série en couche 2 pour RTU et ASCII |
| Ce qu’il définit | Signaux différentiels sur une paire torsadée, seuils du récepteur et charges unitaires | Codes de fonction, les quatre tables de données, réponses d’exception, trames et adressage |
| Support | Paire torsadée en cuivre, deux fils ou quatre fils | RS-485 ou RS-232 (Modbus RTU et ASCII), ou TCP/IP (Modbus TCP) |
| Adresses des appareils | Aucune | 1 à 247 sur une ligne série ; adresse IP et identifiant d’unité en TCP |
| Contrôle d’erreurs | Aucun | CRC sur 16 bits en RTU, LRC en ASCII, contrôles de TCP en Modbus TCP |
| Réglages sur site | Câblage, terminaison et polarisation | Débit, parité, bits d’arrêt, adresse et table de registres |
| Utilisé par | Modbus RTU, BACnet MS/TP, DLMS/COSEM et protocoles de fabricant | Compteurs, automates, onduleurs, variateurs et contrôleurs |
Le guide Modbus sur ligne série fait la même séparation : le protocole applicatif Modbus en couche 7, les règles de la ligne série et les trames RTU ou ASCII en couche 2, et EIA/TIA-485 ou EIA/TIA-232 en couche 1. Une fiche technique qui indique « Modbus RS485 » désigne donc des trames Modbus RTU sur une paire RS-485, et le câblage, les réglages série et la table de registres doivent tous concorder.
À quelle couche appartient chaque réglage ?
Chaque paramètre nécessaire au raccordement d’un appareil appartient à une couche distincte, qui peut tomber en panne indépendamment des autres :
| Couche | Informations nécessaires | Exemple |
|---|---|---|
| Physique | Interface, mode de câblage et désignation des bornes | RS-485 à deux fils, bornes D+ et D− et conducteur commun |
| Réglages série et protocole | Protocole, débit, parité, bits d’arrêt, adresse | Modbus RTU, 9 600 bauds, parité paire, 1 bit d’arrêt, adresse 12 |
| Application | Registres et format des données | Total kWh au registre d’entrée 0x0156, nombre flottant sur 32 bits, mot de poids fort en premier |
Deux produits dotés de bornes RS-485 ne peuvent pas communiquer si l’un utilise Modbus RTU et l’autre BACnet MS/TP. Deux appareils Modbus RTU peuvent avoir un câblage et des réglages identiques, mais interpréter différemment les registres, car chaque fabricant définit sa propre table. Le convertisseur d’adresses Modbus traduit une référence de table comme le registre d’entrée 30343 en adresse base zéro transmise dans la requête.
Ce que définit la liaison RS485 : la couche physique
RS-485 (TIA/EIA-485-A) est une interface différentielle. Chaque signal circule sur une paire de conducteurs et le récepteur lit la différence de tension entre eux. Les perturbations provenant de câbles voisins s’ajoutent de façon similaire aux deux conducteurs : leur différence reste lisible. Le document de synthèse de Texas Instruments (SLLA070) et sa note sur la charge unitaire (SLLA166) précisent les limites utiles sur site.
Un émetteur doit fournir au moins 1,5 V entre les deux conducteurs sur 54 Ω, la charge d’un bus terminé aux deux extrémités. Un récepteur doit interpréter correctement une différence d’au moins 200 mV lorsque chaque conducteur se trouve entre −7 V et +12 V par rapport à sa propre masse. Cette plage de mode commun permet à des appareils ayant des terres locales différentes de partager un bus. Elle suppose néanmoins une référence commune, d’où le conducteur commun prévu par le guide Modbus série à côté de la paire.
La limite de charge est de 32 charges unitaires, pas nécessairement 32 appareils. Une charge unitaire vaut environ 12 kΩ. Beaucoup d’émetteurs-récepteurs actuels ne représentent qu’un quart ou un huitième de charge, ce qui permet théoriquement d’en raccorder 128 ou 256 sur un bus sans répéteur. Le guide Modbus série indique néanmoins 32 appareils sans répéteur, et les adresses s’arrêtent à 247. Sur un bus de compteurs, c’est généralement le temps d’interrogation qui devient limitant en premier.
La longueur admissible diminue lorsque le débit augmente. La règle pratique de TI est que le produit de la longueur en mètres par le débit en bit/s doit rester inférieur à 10⁸. Une liaison de 500 m peut ainsi porter jusqu’à 200 kbit/s. Sur 1 200 m à 19 200 bauds, le produit vaut environ 2,3 × 10⁷, bien en dessous de la limite : aux débits des compteurs, les pertes dans le câble déterminent donc plutôt la portée. TI recommande environ 1 200 m au maximum. Le guide Modbus série indique 1 000 m à 9 600 bauds avec un câble AWG 26 ou plus gros, moitié moins si un câble à quatre fils sert de liaison à deux fils, et des dérivations de 20 m au plus.
RS-485 fonctionne en alternat sur une paire (deux fils) ou en duplex intégral sur deux paires (quatre fils). Il ne définit ni les caractères, ni les messages, ni les adresses. Il ne fixe pas non plus les lettres des bornes. Le guide Modbus nomme les conducteurs D0 et D1, tandis que les fabricants utilisent A/B dans les deux sens, ou D+/D−, 485+/485− et TX+/TX−. Fiez-vous à la définition des signaux dans chaque notice, pas à la seule lettre imprimée. Dans le guide Modbus, D1 est le conducteur le plus positif lorsque le bus est au repos ; un voltmètre placé entre les conducteurs d’un bus polarisé au repos peut donc aider à les identifier. L’inversion de la paire explique souvent l’absence de réponse d’un nouveau bus. Le guide de câblage RS-485 détaille le câble, la polarité, le commun, les terminaisons de 120 Ω aux extrémités et la polarisation maintenant l’état de repos, et le vérificateur de terminaison et de polarisation RS-485 indique où placer les résistances sur un bus donné.
Ce que définit Modbus : le protocole
Le protocole applicatif Modbus définit les codes de fonction, comme 03 pour lire les registres de maintien et 04 pour lire les registres d’entrée, le modèle de bobines et de registres ainsi que les réponses d’exception. Il fonctionne sur plusieurs transports :
| Variante | Transport | Trame |
|---|---|---|
| Modbus RTU | Liaison série, généralement RS-485 | Binaire, avec CRC sur 16 bits |
| Modbus ASCII | Liaison série | Caractères hexadécimaux, avec LRC |
| Modbus TCP | TCP/IP sur Ethernet, port 502 | En-tête MBAP de 7 octets, sans CRC |
Le guide Modbus série ajoute les règles du RTU sur une liaison série. Un seul maître envoie toutes les requêtes. Les appareils utilisent les adresses 1 à 247 ; l’adresse 0 sert aux écritures diffusées auxquelles aucun appareil ne répond. Chaque caractère occupe 11 bits : 1 bit de départ, 8 bits de données, 1 bit de parité et 1 bit d’arrêt. La parité paire est le réglage par défaut imposé. Sans parité, le guide exige 2 bits d’arrêt pour conserver les 11 bits. Tous les appareils du bus doivent partager le débit, la parité et les bits d’arrêt. Une erreur de parité provoque généralement une absence de réponse ou des erreurs CRC intermittentes, pas des valeurs fausses.
RTU n’a pas de caractère de début ou de fin. Une trame se termine lorsque la ligne reste silencieuse pendant 3,5 temps de caractère ; un silence de plus de 1,5 temps de caractère à l’intérieur d’une trame amène le récepteur à la rejeter. À 9 600 bauds, un caractère dure 1,15 ms : le silence entre trames est donc d’environ 4,0 ms. Au-dessus de 19 200 bauds, le guide recommande plutôt les durées fixes de 1,75 ms et 750 µs. Le calculateur de temporisation Modbus RTU les calcule pour chaque réglage, et le guide Modbus TCP et RTU compare les variantes série et réseau.
RS-232 et RS-485
RS-232 est l’ancienne interface série des ports COM de PC et de certains ports de configuration de compteurs. Le tableau la compare à RS-422 et RS-485 :
| RS-232 | RS-422 | RS-485 | |
|---|---|---|---|
| Signal | Asymétrique, mesuré par rapport à la masse | Différentiel | Différentiel |
| Appareils | Un émetteur, un récepteur | Un émetteur, jusqu’à 10 récepteurs | Jusqu’à 32 charges unitaires, dont chacune peut transmettre |
| Longueur du câble (selon TI) | Environ 20 m, limite liée à une charge capacitive de 2 500 pF | Jusqu’à 1 200 m à faible débit | Jusqu’à 1 200 m à faible débit |
| Usage courant | Un ordinateur portable relié à un appareil | Liaison unidirectionnelle longue distance | Bus multipoint de compteurs et de contrôleurs |
Un récepteur RS-232 bascule à ±3 V par rapport à sa propre masse. Une différence de potentiel entre deux tableaux, ou du bruit induit sur le conducteur de signal unique, s’ajoute directement à ce signal. Un récepteur RS-485 mesure seulement la différence entre deux conducteurs, que le même bruit déplace ensemble. Utilisez RS-485 pour une liaison comportant plusieurs appareils, un câble de plus de 15 à 20 m ou un trajet proche des câbles de puissance. Le port RS-232 d’un compteur sert généralement à la configuration sur établi, pas à un réseau permanent. Le guide Modbus sur ligne série autorise Modbus RTU sur RS-232 pour une telle liaison entre deux appareils, avec les mêmes trames et réglages série que sur RS-485.
Un convertisseur RS-232 vers RS-485 ne change que le signal électrique. Les deux côtés doivent toujours utiliser le même protocole et les mêmes réglages série. Le convertisseur doit aussi désactiver son émetteur RS-485 à temps pour recevoir la réponse. La commutation automatique est plus simple à régler que le pilotage par la ligne RTS du logiciel, qui risque de libérer le bus trop tôt ou trop tard.
Autres protocoles sur RS-485
RS-485 transporte de nombreux protocoles outre Modbus RTU. Celui-ci est courant sur les sous-compteurs, les compteurs électriques et les contrôleurs d’installation. Dans les bâtiments et le comptage d’énergie, vous rencontrerez aussi :
| Protocole | Usage courant |
|---|---|
| BACnet MS/TP | Contrôleurs CVC (voir le guide BACnet/IP et MS/TP) |
| DLMS/COSEM | Certains compteurs de réseau, même si beaucoup l’exposent par un port optique (IEC 62056-21) |
| Protocoles de fabricant | Variateurs, onduleurs et anciens compteurs |
M-Bus est parfois confondu avec ces protocoles. Il s’agit d’un bus à deux fils distinct avec sa propre couche physique (EN 13757-2) ; il ne rejoint un port RS-485 ou RS-232 qu’au moyen d’un convertisseur de niveau. Le guide BACnet et Modbus compare ces protocoles du bâtiment.
Un bus, un seul maître
Un bus Modbus RTU possède un seul maître, qui envoie toutes les requêtes. Les appareils ne répondent que lorsqu’ils sont interrogés. Si un BMS interroge déjà les compteurs d’un bus, vous ne pouvez pas ajouter un second maître sur la même paire. Leurs transmissions se superposent et tous deux voient des délais d’expiration et des erreurs CRC qui apparaissent et disparaissent selon leurs cycles. Choisissez une solution :
- lire les données depuis le maître existant, par son interface réseau ;
- utiliser un compteur doté d’un second port de communication ;
- remplacer le maître du bus par un appareil desservant les deux systèmes, par exemple au moyen d’une passerelle Modbus TCP.
Une passerelle TCP peut accepter plusieurs clients réseau, mais n’envoie toujours qu’une seule requête à la fois du côté série. Chaque client rallonge le cycle d’interrogation du même bus. Le guide des passerelles de protocole distingue un pont d’une passerelle de traduction, et le guide de mise en service calcule le temps d’interrogation de dix compteurs.
Informations à obtenir avant le raccordement
Recueillez ces renseignements pour chaque appareil avant les travaux sur site :
- l’interface physique, le mode à deux ou quatre fils et le nom des bornes avec la définition des signaux ;
- le protocole, le débit, la parité, les bits d’arrêt et l’adresse ;
- la charge unitaire de l’émetteur-récepteur, la présence d’une terminaison ou d’une polarisation et la possibilité de les désactiver ;
- la table de registres du modèle et du micrologiciel exacts ;
- le système qui est actuellement maître si l’appareil est déjà raccordé.
Le guide des tables de registres Modbus traite la couche applicative. Pour un compteur Modbus RTU éloigné du Gateway, une interface Modbus ZMB le lit sur un court bus local et transmet les registres par le réseau maillé Zigbee à un Gateway exécutant Edge.
Questions fréquentes
Modbus et RS485, est-ce la même chose ?
Non. RS-485 est la couche physique : une norme électrique pour les signaux d’une paire torsadée. Modbus est un protocole pour les requêtes, les adresses des appareils et les registres. Modbus RTU utilise souvent RS-485, mais Modbus TCP n’en a pas besoin, et RS-485 transporte aussi BACnet MS/TP, DLMS/COSEM et des protocoles de fabricant.
Quelle différence entre Modbus RTU et RS485 ?
Ils décrivent une même liaison à deux couches. Modbus RTU est le protocole et sa trame : des messages binaires avec l’adresse de l’appareil, un code de fonction et un CRC sur 16 bits. RS-485 est la paire de fils et les tensions qui transportent ces messages. Une fiche technique qui indique « Modbus RS485 » désigne Modbus RTU sur un port RS-485. Modbus RTU peut aussi fonctionner sur RS-232.
Quelle différence entre RS-232 et RS-485 ?
RS-232 utilise un conducteur de signal par sens, mesuré par rapport à la masse, et relie deux appareils. Sa charge capacitive maximale de 2 500 pF limite le câble à environ 20 m. RS-485 utilise une paire différentielle, relie jusqu’à 32 charges unitaires sur un bus et peut atteindre environ 1 200 m aux débits des compteurs. Son récepteur n’a besoin que de 200 mV entre les conducteurs et tolère un décalage de masse de −7 V à +12 V entre appareils.
Modbus peut-il fonctionner sur RS-232 ?
Oui. Le guide Modbus sur ligne série autorise RS-232 en option pour une liaison entre deux appareils, souvent un port de configuration. Les trames, le format des caractères et la règle d’un seul maître sont les mêmes que sur RS-485. La limite de charge de 2 500 pF de RS-232 limite le câble à environ 20 m : utilisez RS-485 pour plusieurs appareils ou une liaison plus longue.
Puis-je raccorder un appareil RS-232 à un bus RS-485 ?
Seulement au moyen d’un convertisseur, car les signaux électriques diffèrent. Celui-ci doit aussi basculer son émetteur RS-485 entre émission et réception. La commutation automatique est plus simple à régler que la commande par la ligne RTS, qui peut libérer le bus trop tôt ou trop tard pour la réponse.
Qu’est-ce que Modbus RTU sur RS-485 ?
Des messages Modbus RTU binaires avec CRC sur 16 bits, transmis sous forme de caractères série de 11 bits sur une paire RS-485. Un seul maître interroge les appareils à tour de rôle par leur adresse, de 1 à 247. L’adresse 0 désigne une diffusion à laquelle aucun appareil ne répond.
Quelle tension utilise RS-485 ?
RS-485 n’a pas de tension de signal fixe comme 5 V ou 12 V, car le récepteur lit la différence entre les deux conducteurs. Un émetteur doit fournir au moins 1,5 V sur la charge de 54 Ω d’un bus terminé, un récepteur doit interpréter correctement une différence de 200 mV, et chaque conducteur peut se trouver entre −7 V et +12 V par rapport à la masse du récepteur. Modbus lui-même ne définit aucune tension.