Vous venez d’installer un compteur d’énergie Modbus RTU SOCOMEC DIRIS , Eastron SDM630 ou Siemens SENTRON PAC3200 dans votre armoire électrique.
Il affiche correctement :
la tension
le courant
la puissance
la fréquence
l’énergie consommée
Sur son écran, tout fonctionne parfaitement
Mais dans l’automate Siemens maître, aucune donnée ne remonte
La tension reste à 0
Le courant reste à 0
Le bloc Modbus passe en erreur sur TIA Portal
Et après plusieurs heures, le doute commence :
« Est-ce que le compteur est défectueux ? »
« Est-ce que le module RS485 de l’automate fonctionne ? »
« Est-ce que je dois remplacer le câble ? »
Avant de changer le moindre matériel, voici l’ordre de vérification que nous recommandons
1. Vérifiez que le compteur est bien configuré en Modbus RTU
Le fait qu’un compteur ou centrale de mesure possède deux bornes RS485 ne signifie pas forcément que sa communication est déjà correctement configurée.
Dans le menu du compteur, vérifiez :
le protocole utilisé
l’adresse de l’esclave
la vitesse de transmission
la parité
le nombre de bits d’arrêt
Exemple de configuration :
Adresse 1 — 9600 bauds — 8 bits — parité paire — 1 bit d’arrêt
L’automate doit utiliser exactement les mêmes paramètres sinon ça fonctionne pas !
Une seule différence suffit à empêcher toute communication
2. Vérifiez l’adresse Modbus du compteur
Chaque équipement Modbus RTU doit posséder une adresse unique.
Si votre automate interroge l’adresse 1 alors que le compteur d'énergie est configuré sur l’adresse 3, le compteur ne répondra pas.
Sur une ligne comportant plusieurs compteurs, évitez également les adresses identiques.
Par exemple :
compteur général : adresse 1
compteur atelier 1 : adresse 2
compteur atelier 2 : adresse 2
Deux compteurs ayant la même adresse peuvent répondre en même temps et provoquer des erreurs de communication difficiles à comprendre.
3. Vérifiez les bornes A et B
C’est l’une des causes les plus fréquentes.
La liaison RS485 utilise généralement deux conducteurs :
A ;
B.
Le problème est que la désignation A/B n’est pas toujours identique d’un fabricant à l’autre.
Certains fabricants utilisent également :
D+ et D− ;
485+ et 485− ;
P et N.
Ne vous fiez donc pas uniquement aux lettres inscrites sur les équipements.
Vérifiez le schéma du compteur et celui du module RS485 de l’automate.
Si les paramètres sont corrects mais que le compteur ne répond pas, une inversion des deux conducteurs est l’une des premières choses à contrôler.
4. Vérifiez le câblage de la ligne RS485
Le Modbus RTU sur RS485 doit normalement être câblé en ligne.
Cela signifie que le câble part :
de l’automate vers le premier compteur, puis du premier compteur vers le deuxième,puis vers le troisième et ainsi de suite...
Évitez les câblages en étoile avec plusieurs longues branches.
Utilisez de préférence :
une paire torsadée blindée ;
un câble adapté à la communication RS485 ;
une continuité correcte du blindage ;
une séparation suffisante avec les câbles de puissance.
Un câble de communication installé à proximité d’un câble moteur ou de la sortie d’un variateur peut subir de fortes perturbations.
Le compteur peut alors répondre à l’arrêt, mais perdre la communication dès que le moteur démarre.
5. Vérifiez les résistances de terminaison
Sur une ligne RS485 longue ou utilisée à vitesse élevée, une résistance de terminaison peut être nécessaire aux deux extrémités du bus.
En pratique, on utilise souvent une résistance proche de :
120 ohms
Elle doit être placée uniquement aux extrémités physiques de la ligne.
Pas sur chaque compteur.
Une terminaison manquante peut dégrader le signal.
Trop de terminaisons peuvent au contraire charger excessivement la ligne et empêcher les équipements de communiquer correctement.
Ne rajoutez donc pas des résistances au hasard.
6. Vérifiez le bon registre du compteur
Supposons que vous souhaitiez lire la tension.
Dans la documentation du compteur, vous trouvez par exemple :
Tension phase 1 : registre 30001
Cela ne veut pas forcément dire que vous devez saisir directement 30001 dans votre programme.
Certains logiciels utilisent :
l’adresse 30001 ;
l’adresse 1 ;
ou l’adresse 0.
Cela dépend de la manière dont le fabricant présente sa table Modbus et de la façon dont le bloc automate gère les adresses.
C’est le fameux problème de décalage entre :
adressage en base 0 ;
adressage en base 1.
Si vous lisez le mauvais registre, vous pouvez obtenir :
une valeur nulle ;
une valeur incohérente ;
un code d’exception ;
ou aucune réponse exploitable.
7. Vérifiez le type de registre et le code fonction
Les mesures d’un compteur d’énergie peuvent se trouver dans :
les input registers
les holding registers
Pour les lire, vous devez utiliser le bon code fonction.
Les plus fréquents sont :
fonction 03 : lecture des holding registers ;
fonction 04 : lecture des input registers.
Si la documentation indique que la tension se trouve dans un input register et que vous utilisez la fonction 03, le compteur peut refuser la requête.
L’adresse seule ne suffit donc pas.
Il faut vérifier à la fois :
le numéro du registre ;
son type ;
le code fonction correspondant.
8. Vérifiez le format de la donnée
C’est ici que beaucoup pensent que la communication ne fonctionne pas alors que le compteur répond correctement.
Une mesure comme la tension ou la puissance peut être codée sur :
un entier 16 bits
un entier 32 bits
un nombre flottant 32 bits
deux registres consécutifs
Par exemple, le compteur peut envoyer une tension sous la forme :
2307
Mais la documentation précise qu’il faut appliquer un facteur de 0,1.
La véritable valeur est alors :
230,7 V
Dans d’autres cas, la valeur est répartie sur deux registres.
Il faut alors vérifier l’ordre des mots et des octets :
big-endian ;
little-endian ;
mot haut puis mot bas ;
mot bas puis mot haut.
Une mauvaise interprétation peut afficher une valeur comme :
0 ;
65 535 ;
1,2 × 10²⁰ ;
ou une valeur qui change complètement à chaque lecture.
Le problème ne vient pas nécessairement du compteur.
Il peut simplement venir du format de décodage.
9. Analysez le code d’erreur de l’automate
Ne vous arrêtez pas au bit ERROR
Regardez également le code STATUS ou le code de diagnostic fourni par le bloc Modbus sur TIA Portal
Il permet souvent de distinguer :
une absence totale de réponse
un mauvais paramètre série
une adresse esclave incorrecte
un registre inexistant
un code fonction refusé
un délai de réponse dépassé
Un automaticien efficace ne change pas tous les paramètres en même temps.
Il lit le code d’erreur, formule une hypothèse, puis effectue une seule modification à la fois.
La méthode de diagnostic à retenir
Lorsqu’un compteur d’énergie ne communique pas en Modbus RTU, vérifiez dans cet ordre :
le protocole et les paramètres série
l’adresse du compteur
la polarité A/B
la topologie et le câble RS485
les résistances de terminaison
l’adresse du registre
le code fonction
le format de la donnée
le code d’erreur de l’automate
Cette méthode évite de perdre plusieurs heures et de remplacer un compteur parfaitement fonctionnel.