Intégration Modbus TCP
Modbus TCP connecte HyperVisu aux équipements industriels et énergétiques : onduleurs solaires, chargeurs de véhicules électriques, pompes à chaleur, unités de ventilation, automates. HyperVisu est le client Modbus — il interroge les registres de l’équipement et y écrit lorsque vous commandez un widget.
Éléments nécessaires : l’adresse IP de l’appareil, le port Modbus (généralement 502), sa table de registres (dans la documentation Modbus du fabricant) et son ID d’esclave/d’unité.
Connexions. Activez d’abord Modbus TCP Protocol sur la page Services (voir « Services et protocoles ») ; il est désactivé sur un nouveau serveur. Modbus TCP est un protocole à connexions multiples : créez une connexion par serveur Modbus (par IP/port) sur la page Connections (voir « Connexions »). Dans Add connection, sélectionnez la carte Modbus TCP et saisissez un Instance Name, le Server IP Address et un Poll Interval (seconds) — la fréquence à laquelle HyperVisu lit tous les objets de cette connexion. Saisissez l’intervalle : le 30 gris est seulement une indication ; un champ laissé vide fait interroger le serveur toutes les 5 secondes.
La boîte de dialogue n’a pas de champ de port : la connexion est créée sur le port 502. Si l’équipement écoute sur un autre port, sélectionnez la nouvelle connexion, modifiez Modbus TCP Port et cliquez sur Save connection.
Une connexion Modbus n’a pas de bouton Test. Le contrôle repose sur l’état Connected de la page Connections et la valeur en direct d’un objet lié.
Liaison d’un objet. Liez les registres Modbus aux objets de widget dans l’espace Devices. Pour chaque objet, définissez :
| Paramètre | Signification |
|---|---|
| Slave ID | L’identifiant de l’unité, 1–247. |
| Register type | Bobine, entrée discrète, registre d’entrée ou registre de maintien. |
| Register address | L’adresse du registre dans la table de l’appareil, de 0 à 65535. Elle est envoyée à l’équipement exactement telle que saisie : entrez l’adresse du protocole, pas un numéro de référence 4xxxx ou 3xxxx. Attention au décalage de un : certains fabricants documentent les adresses à partir de 1, Modbus compte à partir de 0. |
| Data type | La manière de décoder les registres bruts (entier signé/non signé de 16/32 bits, flottant, …). |
| Byte order | L’ordre des mots/octets pour les valeurs occupant plusieurs registres — indiqué dans la documentation du fabricant. Le champ apparaît uniquement pour les types de données occupant deux registres ou plus (32 bits, 64 bits et virgule flottante). |
| Write Function | Registres de maintien uniquement. Laissez Automatic (FC6 / FC16), sauf si l’équipement n’implémente pas FC6 ; choisissez alors Always FC16 (write multiple). |
| Scaling | Scale, Offset, Decimal Places et Units. La ligne Formula affiche Display = (Raw × scale) + offset avec une valeur brute d’exemple fixe, pas la mesure de l’équipement. Un facteur de 0 est interprété comme 1. |
📘 Remarque : Le facteur et le décalage de l’objet s’appliquent avant toute transformation sur ce même objet (voir « Transformations des valeurs et état de fonctionnement »). N’ajoutez pas de transformation de mise à l’échelle par-dessus, sinon la valeur est mise à l’échelle deux fois.
Exemple pratique — puissance d’un onduleur dans un compteur
La documentation de l’onduleur indique : puissance active, registre d’entrée 32080, entier signé de 32 bits, gain 1, unité W, ID d’unité 1.
- Créez une connexion Modbus TCP pour l’onduleur : Server IP Address
192.168.1.120, Poll Interval (seconds)10(voir « Connexions »). La connexion est créée sur le port502. - Dans Devices, ajoutez un widget Meter « Production solaire », pièce Technique, catégorie Énergie. Sous Protocol, sélectionnez la connexion de l’onduleur, affichée sous le nom que vous lui avez donné.
- Ouvrez son objet de puissance et saisissez : Slave ID
1, Register type Input register, Register address32080, Data type INT32, Byte order selon la documentation. - Définissez Scaling : facteur
0.001, décalage0, décimales2, unitéskW. Une valeur brute de5230devient5.23 kW. - Cliquez sur Save object, puis sur Apply changes dans la barre latérale et confirmez. La connexion, l’appareil et ses objets deviennent actifs ensemble à cet instant.
- Attendez au moins un intervalle d’interrogation. La valeur en direct apparaît sur la ligne du widget ; comparez-la avec l’affichage de l’onduleur.
💡 Conseil : Activez la journalisation sur l’objet (voir « Paramètres des objets, journalisation et notifications ») pour que le compteur dispose de graphiques et d’un historique dans l’app.

Liaison Modbus
Les objets Modbus se configurent dans la boîte de dialogue des paramètres de l’objet (ouvrez l’objet avec Edit, voir « Paramètres des objets, journalisation et notifications »). Les sections Modbus sont :
Connection
| Champ | Description |
|---|---|
| Slave ID | L’ID de l’appareil esclave Modbus (1–247). |
Data Configuration
| Champ | Description |
|---|---|
| Register Type | La table de registres à lire ou à écrire (par exemple registres de maintien ou d’entrée). |
| Register Address | Le numéro du registre. |
| Data Type | La manière d’interpréter les octets du registre (tailles d’entiers, flottant, …). |
| Byte Order | L’ordre des mots/octets utilisé par l’appareil. |
Scaling & Conversion
| Champ | Description |
|---|---|
| Scale | Multiplie la valeur brute par ce facteur (par exemple 0.1 pour diviser par 10). |
| Offset | Ajouté après la mise à l’échelle (par exemple -273.15 pour Kelvin → Celsius). |
| Decimal Places / Units | Précision d’affichage et unité. |
La boîte de dialogue affiche la formule en direct — Display = (Raw × scale) + offset — avec un exemple chiffré, pour vérifier la conversion avant l’enregistrement.

💡 Conseil : Les numéros de registre, les codes de fonction et un exemple pratique complet figurent dans le chapitre Modbus.