RS-485 est une norme électrique : elle définit les tensions sur une paire torsadée et le nombre d’appareils pouvant la partager. Modbus est un protocole : il définit les requêtes et les réponses transportées par une liaison. Modbus RTU utilise souvent RS-485, d’où leur association courante. Mais un appareil équipé de bornes RS-485 peut utiliser un autre protocole, et Modbus TCP fonctionne sur Ethernet sans RS-485.
À 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.
Ce que définit RS-485
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 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 la polarité, le commun, les terminaisons de 120 Ω aux extrémités et la polarisation maintenant l’état de repos.
Ce que définit Modbus
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.
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
RS-485 et Modbus sont-ils identiques ?
Non. RS-485 est une norme électrique pour les signaux d’une paire torsadée. Modbus est un protocole de requêtes et de réponses. Modbus RTU utilise souvent RS-485, mais Modbus TCP n’en a pas besoin. RS-485 transporte aussi BACnet MS/TP, DLMS/COSEM et des protocoles de fabricant.
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.
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.