Modbus RTU sur RS-485 relie compteurs, variateurs et contrôleurs à un maître par un même câble à paire torsadée. La mise en service doit vérifier le bus physique, les paramètres série, l'identité de chaque appareil, la signification de chaque registre lu, la durée du cycle d'interrogation et le comportement du système lorsqu'un appareil ne répond plus. Ce guide suit cet ordre et se termine par un procès-verbal de réception. Pour les équipements connectés au réseau plutôt qu'à un bus série, consultez le guide Modbus TCP et RTU.
Télécharger le modèle de procès-verbal de réception (.txt). Imprimez-le ou remplissez-le sur site.
Consigner les caractéristiques de chaque appareil
Pour chaque appareil, notez le modèle et la version du micrologiciel exacts, l'identifiant d'unité (adresse de station), le débit en bauds, la parité, le nombre de bits de données et le nombre de bits d'arrêt. Tous les appareils d'un même bus utilisent les mêmes paramètres série.
Pour chaque point à lire, consignez le type d'objet, le code de fonction, l'adresse du protocole à partir de zéro, le numéro de référence tel qu'il figure dans le manuel, le nombre de registres, le type de données, l'ordre des octets et des mots, le facteur d'échelle, l'unité, les droits de lecture ou d'écriture et la plage attendue.
Les manuels utilisent plusieurs conventions d'adressage. Dans la notation classique, 40001 désigne le registre de maintien à l'adresse 0, lu avec le code de fonction 03 :
Le convertisseur d'adresses Modbus affiche à la fois le type d'objet et chaque convention, afin de détecter un décalage d'un registre avant de configurer les points.
Câbler le bus RS-485
Le guide Modbus pour ligne série décrit un câble principal reliant successivement les appareils, une terminaison à chaque extrémité, une polarisation à un seul endroit et un conducteur commun. Le guide de câblage RS-485 explique ces règles ; le guide RS-485 et Modbus distingue la couche électrique du protocole.
Vérifiez :
- le mode à deux ou quatre fils et le nom des bornes de chaque appareil (les fabricants utilisent A/B, D+/D− ou 485+/485− et peuvent inverser les lettres) ;
- un seul câble principal en chaîne, avec de courtes dérivations et sans branchement en étoile ;
- une terminaison à chacune des deux extrémités du câble principal, uniquement à ces endroits ;
- une seule source de polarisation si le réseau en a besoin ; de nombreux maîtres et certains appareils disposent d'une polarisation commutable ;
- le conducteur commun, le blindage et la mise à la terre conformément à la conception du projet ;
- les répéteurs et isolateurs, ainsi que leur emplacement.
Le vérificateur de terminaison et de polarisation RS-485 repère les contradictions d'une topologie, par exemple trois terminaisons ou une polarisation à deux endroits. Les instructions de l'appareil précisent si la terminaison et la polarisation sont intégrées, commutables ou externes.
Ajouter les appareils un par un
Commencez avec un segment court et éprouvé et un seul appareil. Confirmez les paramètres série et lisez une valeur simple documentée. Ajoutez ensuite les appareils un par un et tenez une liste des stations. Si deux appareils partagent le même identifiant d'unité, ils répondent à la même requête et perturbent mutuellement leurs réponses : le défaut paraît alors intermittent.
Pour les compteurs courants, les tables de registres Modbus du répertoire des appareils donnent chaque adresse en décimal et en hexadécimal, avec son code de fonction, son format, son échelle et l'ordre des mots, d'après le document de protocole du fabricant.
Une réponse d'exception est une information utile : l'appareil a reçu la requête et l'a rejetée. Le code 02 (adresse de données illégale) indique généralement une mauvaise adresse ou un mauvais nombre de registres. L'absence de réponse oriente plutôt vers le câblage, les paramètres série ou l'identifiant d'unité. Le répertoire des fonctions et exceptions Modbus présente tous les codes.
Pour vérifier manuellement une requête, calculez son CRC. Celle-ci lit trois registres de maintien de l'unité 17 (0x11), à partir de l'adresse 107 (0x6B) :
Décoder les valeurs : exemple
Deux registres de 16 bits peuvent contenir un flottant de 32 bits, un entier de 32 bits ou deux valeurs distinctes. La table de registres définit le type et l'ordre des mots et des octets. Capturez les mots bruts d'une valeur stable et décodez-les manuellement avant de configurer le reste de l'appareil.
Par exemple, les mots 436A 0000, décodés comme un flottant de 32 bits avec les mots et les octets de poids fort en premier, donnent 234,0 : une tension de phase plausible.
Comparez cette valeur à l'affichage de l'appareil. Un mauvais ordre des mots peut encore donner un petit nombre plausible : seule la concordance avec l'affichage valide le décodage. Conservez les mots bruts avec la configuration pour pouvoir détecter une modification ultérieure du micrologiciel ou de la table. Le guide des tables de registres détaille les conventions d'adressage, les types de données, l'ordre des mots et la mise à l'échelle.
Interrogation et délais d'attente
La durée d'une trame dépend du débit en bauds et du format des caractères. Celle d'un cycle d'interrogation dépend aussi du temps de réponse de chaque appareil, de la pause entre les requêtes, de la politique de nouvelle tentative ainsi que du nombre et de la taille des requêtes.
À 9 600 bauds, avec une parité paire et un bit d'arrêt, une requête de 8 octets, une réponse de 25 octets, un délai de réponse de 5 ms et dix appareils, un cycle complet dure environ 470 ms :
Prenez ce calcul comme une borne inférieure, puis mesurez les appareils réels. Notez le temps de réponse le plus long observé en fonctionnement normal, pas seulement sur un banc peu chargé. Interroger le bus plus vite que sa capacité produit des délais d'attente, pas davantage de données. Le guide sur l'interrogation et les nouvelles tentatives montre le coût d'un appareil hors ligne à chaque cycle ; le guide de dépannage distingue délais d'attente, exceptions et valeurs erronées.
Qualité des données
L'application qui reçoit les mesures doit distinguer une valeur récente d'une valeur conservée en cache, expirée, issue d'une exception, hors plage ou obsolète. Définissez :
- l'horodatage d'acquisition et, s'il existe sur l'appareil, celui de la source ;
- l'ancienneté maximale acceptable d'une valeur ;
- les seuils de nouvelle tentative et de déclaration hors ligne ;
- le maintien éventuel de la dernière valeur à l'écran et son marquage ;
- la gestion des remises à zéro et des retours à zéro des compteurs ;
- le comportement des règles en aval lorsque la qualité d'une valeur est insuffisante.
Procès-verbal de réception
Conservez un procès-verbal par bus. Le modèle téléchargeable couvre :
| Champ | Exemple |
|---|---|
| Maître, modèle et micrologiciel | Interface ZMB |
| Paramètres série | 9 600 bauds, 8 bits de données, parité paire, 1 bit d'arrêt |
| Topologie | Chaîne, 120 Ω au maître et à l'unité 3, polarisation au maître |
| Liste des appareils | Identifiants d'unité 1 à 3, modèles et micrologiciels consignés |
| Mots bruts pour chaque type de données | 436A 0000 = 234,0 V, conforme à l'affichage |
| Cycle d'interrogation calculé et mesuré | 470 ms calculés, 520 ms mesurés |
| Essais de panne | Un appareil débranché : les autres continuent à être interrogés, valeur marquée obsolète |
| Nom et date |
Répétez ces essais après toute modification du micrologiciel, de la table de registres, de la topologie, des paramètres série ou de l'interrogation. Pour la conception complète, poursuivez avec le guide d'intégration des compteurs dans un BMS ou système SCADA, consultez les appareils Modbus dont les tables de registres sont documentées, ou composez un système à partir de la liste des appareils.