Comment connecter du Modbus à MQTT

Le pont entre vos équipements de terrain Modbus et le monde IoT/cloud, expliqué simplement.

Modbus et MQTT : deux mondes

Modbus est un protocole de terrain né dans l’industrie. Il fait dialoguer automates, compteurs, onduleurs et capteurs via des registres (des cases mémoire numérotées), selon un modèle maître/esclave. Il existe en deux variantes : Modbus RTU (série, sur RS485) et Modbus TCP/IP (Ethernet). Simple et universel — mais purement local.

MQTT est un protocole de messagerie pensé pour l’IoT. Les équipements publient des messages (souvent en JSON) sur des topics, et un broker les distribue à ceux qui s’y sont abonnés. Léger, temps réel et orienté cloud, c’est le langage des plateformes IoT, des tableaux de bord et des outils d’analyse.

Les relier, c’est faire sortir une donnée enfermée sur un bus de terrain vers une infrastructure moderne — sans changer le matériel existant.

Pourquoi les relier

Relier des équipements Modbus à un broker MQTT pour la remontée cloud

Les cas concrets sont nombreux : remonter des compteurs et automates vers un cloud pour le suivi et la facturation, alimenter des tableaux de bord temps réel, agréger plusieurs sites sur une seule plateforme, déclencher des alertes, ou nourrir un outil d’analyse / un data lake. MQTT étant léger, il convient aussi aux liaisons à faible bande passante (3G/4G).

Comment ça marche, étape par étape

  1. Lire les registres Modbus — la passerelle interroge l’équipement (maître) ou est interrogée (esclave) et récupère les valeurs des registres utiles.
  2. Associer chaque registre à un topic MQTT — on définit où chaque valeur sera publiée (ex. site/atelier/compteur1/energie).
  3. Transformer la valeur — mise à l’échelle, changement d’unité, gestion des types et de l’endianness, mise en forme JSON.
  4. Publier sur le broker — la valeur part vers le broker MQTT (cloud privé ou public), à la fréquence choisie ou sur changement.
  5. (Optionnel) Recevoir des commandes — en s’abonnant à un topic, la passerelle peut écrire un registre Modbus depuis un message MQTT entrant (consigne, commande).

Bonnes pratiques & pièges

  • Maîtriser la fréquence — publier sur changement avec une hystérésis plutôt qu’en continu, pour ne pas saturer le réseau ni le broker.
  • Types et endianness Modbus — un registre fait 16 bits ; les valeurs 32 bits (float, int) tiennent sur deux registres dont l’ordre varie selon le constructeur. À vérifier.
  • Structurer les topics — une hiérarchie claire (site / zone / équipement / mesure) facilite l’exploitation côté cloud.
  • Sécurité — privilégier MQTT sur TLS avec authentification ; ne pas exposer un broker ouvert.
  • Robustesse — prévoir un last will MQTT et une reconnexion automatique pour les liaisons instables.

Le faire avec une WBox

La passerelle WBox couvre toutes ces étapes nativement : lecture Modbus RTU/TCP, mapping par glisser-déposer, transformation en Blockly ou JavaScript, publication MQTT (broker ou client) et commande en retour. Tout se configure sans développement lourd. Voir la page dédiée : passerelle Modbus ⇄ MQTT.

Il vous faut une passerelle WBox, le driver Modbus et le driver MQTT. Pour la remontée de compteurs, voir aussi la télérelève vers le cloud.