Fabrication intelligente

Suivi énergétique d'usine avec l'IoT : compteurs, MQTT et tableaux de bord par ligne et par poste

Un plan pratique pour le suivi énergétique de toute une usine : quels compteurs installer, comment structurer les topics MQTT, comment stocker les index et comment présenter l'énergie par ligne, par poste et par pièce.

Tableau de bord de suivi énergétique d'usine affichant les kWh par ligne de production et par poste, alimenté en MQTT par des compteurs d'énergie IoT
Essayez-le sur votre propre broker MQTTObtenez un broker MQTT privé et managé avec l’offre Free et partez d’exemples de code prêts à l’emploi.
Essayer gratuitement Exemples de code Aucune carte bancaire requise

Le suivi énergétique d'usine donne à chaque ligne, chaque poste et chaque produit une empreinte énergétique mesurable, au lieu d'une simple facture mensuelle. Dans ce guide, vous allez planifier l'implantation des compteurs, concevoir une structure de topics MQTT qui passe d'un bâtiment à plusieurs sites, stocker correctement les index des compteurs et construire des rapports affichant les kWh par ligne, par poste et par pièce.

Pourquoi la facture d'énergie ne suffit pas

La facture mensuelle indique ce que l'usine a consommé, pas pourquoi. Elle ne distingue pas l'atelier de peinture de la ligne d'assemblage, un poste productif d'un week-end à l'arrêt, ni une machine bien réglée d'une autre dont la pompe hydraulique tourne à plein régime en attendant des pièces. Sans cette ventilation, l'énergie reste un frais général dont personne n'est responsable.

Un système de suivi énergétique d'usine change la discussion. Quand un responsable de ligne voit que sa ligne a consommé à peu près autant d'énergie le samedi, sans production, qu'un poste normal, la question « qu'est-ce qui tournait ? » se pose d'elle-même. Quand l'énergie par pièce est affichée à côté du TRS, l'énergie devient un KPI de production plutôt qu'un problème des services généraux.

Les briques d'un système de suivi énergétique d'usine

Couche Composants typiques Rôle
Mesure Compteur général, sous-compteurs par départ, ligne et grosse machine ; compteurs de gaz, d'eau et d'air comprimé Produire les index bruts et les valeurs instantanées
Edge Passerelle Modbus, automate, PC industriel ou Raspberry Pi avec Node-RED ou Python Interroger les compteurs, horodater, publier en MQTT
Transport Broker MQTT Découpler producteurs et consommateurs, livrer les données en direct
Stockage Base de séries temporelles comme InfluxDB ou TimescaleDB, via Telegraf ou un abonné personnalisé Conserver l'historique pour les rapports
Contexte Planning de production, états machine, comptages de pièces Transformer les kWh en énergie par poste et par pièce
Présentation Grafana, tableau de bord Node-RED, outil de BI Afficher tendances, comparaisons et alertes

Le broker MQTT est la charnière de l'architecture. Les compteurs publient une seule fois ; l'historian, le tableau de bord en direct, un script d'alerte et une future intégration MES s'abonnent chacun de leur côté. Si vous choisissez où faire tourner ce broker, un broker MQTT managé le garde disponible sans ajouter de serveur à la charge de l'équipe maintenance.

Étape 1 : décider où compter

Partez du schéma unifilaire électrique et de la liste des usages énergétiques significatifs. Une séquence courante et abordable :

  1. Arrivée générale : le compteur général, idéalement lu toutes les quelques secondes plutôt que via les données au pas de 15 minutes du fournisseur.
  2. Départs principaux : un compteur par bâtiment, hall ou grande zone.
  3. Lignes de production : un compteur par tableau de distribution de ligne.
  4. Gros consommateurs individuels : compresseurs, groupes froids, fours, presses à injecter, grosses presses.
  5. Autres utilités : gaz naturel, vapeur, eau et débit d'air comprimé.

Chaque étape apporte de la résolution. Inutile de tout installer le premier jour ; il faut juste de quoi répondre à la première question métier. Le câblage détaillé et l'interrogation Modbus des étapes trois et quatre sont traités dans le tutoriel de sous-comptage électrique.

Étape 2 : concevoir la structure des topics

Une hiérarchie de topics fondée sur ISA-95 (entreprise, site, zone, ligne, cellule) rend les données faciles à trouver et correspond à la façon dont les équipes se représentent l'usine. ConnectMQ détecte les topics de type ISA-95 et Unified Namespace et affiche les appareils selon ces niveaux dans son portail.

connectmq/<site>/<area>/<line>/<asset>/energy

connectmq/plant1/assembly/line1/main-board/energy
connectmq/plant1/assembly/line2/main-board/energy
connectmq/plant1/molding/imm-04/drive/energy
connectmq/plant1/utilities/compressors/comp1/energy

Un payload de compteur doit contenir à la fois les index cumulés et les valeurs instantanées :

{
  "ts": 1760600000,
  "kwh_total": 183452.7,
  "kw": 42.6,
  "kvar": 11.2,
  "pf": 0.97,
  "v_l1": 231.4,
  "i_l1": 61.8
}

Publiez kwh_total à partir du registre cumulé du compteur lui-même, jamais comme une valeur que la passerelle additionne à partir des mesures de puissance. Les index résistent aux redémarrages de la passerelle et aux messages manqués : si trois messages sont perdus, l'index suivant contient quand même l'énergie consommée entre-temps.

Étape 3 : stocker les données

Le consommateur MQTT de Telegraf est un moyen rapide de déposer les données dans InfluxDB, avec des tags extraits des niveaux du topic. Il se connecte au broker comme un client MQTT normal :

[[inputs.mqtt_consumer]]
  servers = ["ssl://broker.connectmq.com:8883"]
  topics = ["connectmq/plant1/+/+/+/energy"]
  client_id = "YOUR_CLIENT_ID"
  username = "YOUR_USERNAME"
  password = "YOUR_PASSWORD"
  qos = 1
  persistent_session = true
  data_format = "json_v2"

  [[inputs.mqtt_consumer.topic_parsing]]
    topic = "connectmq/+/+/+/+/energy"
    tags = "_/site/area/line/asset/_"

  [[inputs.mqtt_consumer.json_v2]]
    measurement_name = "energy"
    timestamp_path = "ts"
    timestamp_format = "unix"
    [[inputs.mqtt_consumer.json_v2.field]]
      path = "kwh_total"
      type = "float"
    [[inputs.mqtt_consumer.json_v2.field]]
      path = "kw"
      type = "float"
    [[inputs.mqtt_consumer.json_v2.field]]
      path = "pf"
      type = "float"

[[outputs.influxdb_v2]]
  urls = ["http://localhost:8086"]
  token = "${INFLUX_TOKEN}"
  organization = "plant"
  bucket = "energy"

Avec une session persistante et le QoS 1, les messages publiés pendant un redémarrage de Telegraf sont mis en file d'attente par le broker (dans la limite d'expiration de la session).

Étape 4 : l'énergie par ligne et par poste

Comme vous stockez des index, l'énergie d'une période quelconque est simplement l'index de fin moins l'index de début. Dans le langage Flux d'InfluxDB, les kWh par ligne sur un poste s'obtiennent ainsi :

from(bucket: "energy")
  |> range(start: 2026-10-15T06:00:00Z, stop: 2026-10-15T14:00:00Z)
  |> filter(fn: (r) => r._measurement == "energy" and r._field == "kwh_total")
  |> spread()
  |> group(columns: ["line"])
  |> sum()

spread() renvoie le maximum moins le minimum par compteur, ce qui équivaut à la consommation pour un index monotone ; le regroupement et la somme additionnent les compteurs de chaque ligne. Attention aux remplacements de compteurs et aux remises à zéro d'index, qui créent une marche descendante : signalez-les dans les données plutôt que de les corriger en silence.

Les limites de poste relèvent de la configuration, pas de requêtes codées en dur. Une petite table des heures de début et de fin de poste par site, ou des événements de poste publiés par le MES sur un topic .../shift, permettent au même tableau de bord de fonctionner pour toutes les usines.

Étape 5 : l'énergie par pièce

L'énergie par pièce (ou par tonne, par lot, par mètre carré) est le KPI qui relie l'énergie à la production. Il vous faut le nombre de pièces de la même ligne sur la même période, que votre dispositif de comptage de production peut publier à côté des données énergétiques :

energy_per_part = kWh(line, shift) / good_parts(line, shift)

Utilisez les pièces bonnes, pas le total, pour que les rebuts apparaissent aussi comme un coût énergétique. Comparez la valeur entre postes et produits, mais n'oubliez pas qu'elle n'est jamais nulle : la consommation de base d'une ligne à vide se répartit sur moins de pièces lors d'un poste lent. Séparer la charge de base de la charge variable, par exemple avec une simple régression des kWh en fonction des pièces, donne une image plus juste et constitue la base des références énergétiques exigées par l'ISO 50001, expliquées dans collecter les données énergétiques pour l'ISO 50001.

Des tableaux de bord réellement utilisés

Un ensemble de vues utiles selon les publics :

Public Vue Rafraîchissement
Chef de ligne kW en direct de sa ligne, kWh du poste par rapport à l'objectif, consommation à vide depuis la dernière pièce Secondes à minutes
Directeur d'usine kWh par ligne et par jour, tendance de l'énergie par pièce, 10 plus gros consommateurs Quotidien
Responsable énergie Charge de base la nuit et le week-end, pointe de puissance, facteur de puissance, comparaison avec la référence Quotidien et mensuel
Maintenance Consommation anormale par machine, puissance spécifique des compresseurs, estimation des fuites En direct et hebdomadaire

La charge de base de nuit et de week-end est souvent le gain le plus rapide. Tracez la consommation du vendredi soir au lundi matin par zone : tout ce qui reste plat et élevé mérite une visite sur le terrain. L'air comprimé est un coupable fréquent, et la surveillance des fuites d'air comprimé permet de le quantifier.

Alertes

Les alertes en direct fonctionnent mieux pour des situations sur lesquelles quelqu'un peut agir immédiatement : une ligne qui consomme encore longtemps après la fin du poste, une puissance appelée qui approche la pointe souscrite, un facteur de puissance qui passe sous le seuil de pénalité. Dans le portail ConnectMQ, vous pouvez définir des règles d'alerte de seuil sur des champs numériques comme kw ou pf, et les dépassements apparaissent dans le journal des alertes. L'acheminement de ces événements vers l'e-mail ou une messagerie se fait via un abonné externe comme Node-RED.

Erreurs courantes

  • Additionner la puissance au lieu de lire les index d'énergie. Les échantillons perdus deviennent des kWh perdus.
  • Horloges non synchronisées. Des passerelles sans NTP décalent les données d'un poste à l'autre. Horodatez à l'edge avec une heure synchronisée.
  • Erreurs de rapport de TC. Un mauvais rapport de transformateur de courant dans la configuration du compteur multiplie chaque mesure. Vérifiez chaque compteur une fois avec une pince ampèremétrique.
  • Trop de tableaux de bord, aucun responsable. Confiez le KPI énergie de chaque ligne à son responsable.
  • Des données prisonnières d'un seul outil. Publiez tout d'abord sur le broker ; les outils passent, la structure des topics reste.

Pour la feuille de route complète de la production connectée, y compris la place de l'énergie à côté du TRS, de la qualité et de la maintenance, lisez le guide de l'industrie intelligente. Ces mêmes flux de données constituent aussi la base d'un jumeau numérique énergétique de l'usine.

Faire tourner votre suivi énergétique sur ConnectMQ

ConnectMQ est un broker MQTT cloud avec TLS sur le port 8883, MQTT 5, une vue des appareils compatible ISA-95, un explorateur de topics en direct et des alertes de seuil. Testez votre premier compteur sur le serveur MQTT public gratuit (réservé aux tests, pas aux données de production), puis créez un broker Serverless gratuit sans carte bancaire et passez aux offres payantes ou dédiées à mesure que de nouveaux compteurs sont mis en service.

Questions fréquentes

Combien de compteurs faut-il pour le suivi énergétique d'une usine ?

Commencez par l'arrivée générale, un compteur par ligne de production et des compteurs sur les plus gros consommateurs individuels. C'est généralement suffisant pour trouver les premières économies, et d'autres compteurs peuvent être ajoutés plus tard sans changer l'architecture.

À quelle fréquence les compteurs d'énergie doivent-ils publier ?

Toutes les 5 à 60 secondes en général. Une publication plus rapide sert les tableaux de bord en direct et les alertes de puissance, tandis que les rapports reposent sur l'index cumulé et ne dépendent pas de l'intervalle.

Puis-je utiliser des compteurs Modbus existants ?

Oui. Une passerelle interroge les compteurs en Modbus RTU ou TCP et publie les valeurs en JSON via MQTT. La plupart des compteurs multifonctions récents exposent les index d'énergie et les valeurs instantanées dans des registres documentés.

ConnectMQ stocke-t-il l'historique des données énergétiques ?

Non. ConnectMQ livre les messages en direct et les valeurs en retained. L'historique à long terme est stocké par un abonné, comme Telegraf, qui écrit dans une base de séries temporelles.

Articles liés

TRS (OEE) vs TEEP vs OOE : quel indicateur utiliser ?

Le TRS (OEE), l'OOE et le TEEP partagent les mêmes facteurs de performance et de qualité, mais se mesurent sur des bases de temps différentes. Ce comparatif déroule un exemple unique et liste les signaux MQTT nécessaires à chaque indicateur.

7 min de lecture

Tous les articles →

Votre broker MQTT privé, à quelques clics

Créez un compte, récupérez les identifiants de votre broker et connectez votre premier appareil — aucun serveur à installer, mettre à jour ou dimensionner.