Jumeau numérique

Jumeau numérique d'usine : cas d'usage et architecture

Un guide pratique des cas d'usage et de l'architecture d'un jumeau numérique d'usine, montrant comment les jumeaux de ligne et de site sont alimentés par des données MQTT structurées selon ISA-95.

Jumeau numérique d'usine montrant une ligne de production 3D avec machines CNC, bras robotisé et convoyeur reliés à des flux de données MQTT en direct
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

Un jumeau numérique d'usine est un modèle vivant, piloté par les données, de votre site, qui reflète ce que font en ce moment les machines, les lignes et les zones. Dans ce guide, vous verrez quels cas d'usage justifient un jumeau, comment structurer les modèles au niveau de la ligne et du site, et comment les alimenter avec des données MQTT structurées selon ISA-95 pour que le jumeau reste exact sans intégrations point à point sur mesure.

Ce qu'est réellement un jumeau numérique d'usine

Le terme est souvent galvaudé par le marketing, d'où l'intérêt d'être précis. Un jumeau numérique d'usine comporte trois éléments :

  1. Un modèle des équipements physiques et de leurs relations : les machines appartiennent à des cellules, les cellules à des lignes, les lignes à des zones, les zones à un site.
  2. Une connexion de données en direct qui maintient l'état du modèle synchronisé avec la réalité, généralement à quelques secondes près.
  3. Une finalité : ce que des personnes ou des logiciels font du modèle synchronisé, par exemple repérer un convoyeur bloqué, comparer les performances des équipes ou tester une modification d'ordonnancement.

Sans connexion de données en direct, vous avez un dessin 3D ou une simulation. Sans finalité, vous avez un économiseur d'écran coûteux. La plupart des projets réussis démarrent avec une finalité restreinte et étendent le modèle progressivement. Si le concept est nouveau pour vous, le guide de la technologie du jumeau numérique couvre les fondamentaux et la terminologie.

Jumeaux de ligne et jumeaux de site

Les jumeaux d'usine existent généralement à deux échelles, et ils répondent à des questions différentes.

Aspect Jumeau de ligne Jumeau de site
Périmètre Une ligne de production ou une cellule Toutes les zones, lignes et utilités d'un site
Utilisateurs types Opérateurs de ligne, techniciens de maintenance Directeurs d'usine, planificateurs de production, responsables énergie
Fréquence de mise à jour Moins d'une seconde à quelques secondes Secondes à minutes (agrégé)
Signaux clés État machine, temps de cycle, charge broche, compteurs de pièces, alarmes TRS par ligne, débit, énergie par unité, en-cours, causes d'arrêt
Visualisation Schéma 3D ou 2D détaillé de la ligne Plan d'implantation ou arborescence avec exploration descendante
Questions principales Quel poste est le goulot en ce moment ? Pourquoi s'est-il arrêté ? Quelle ligne sous-performe cette semaine ? Où l'énergie est-elle gaspillée ?

Une erreur fréquente consiste à construire un jumeau de site avec le niveau de détail d'une ligne partout. Cela multiplie l'effort d'intégration et noie les utilisateurs. Une meilleure approche est une vue d'ensemble du site qui permet de descendre dans quelques jumeaux de ligne détaillés, là où l'intérêt métier est le plus fort.

Cas d'usage qui justifient un jumeau numérique d'usine

Visibilité de la production en temps réel

Le cas d'usage le plus simple et le plus courant : un écran unique qui affiche l'état de chaque machine (en marche, à l'arrêt, arrêtée, en défaut) avec des couleurs et des compteurs, pour que les superviseurs cessent d'arpenter l'atelier à la recherche des problèmes. La valeur vient de la hiérarchie. Quand la vue du site passe au rouge, un superviseur peut cliquer sur la zone, puis sur la ligne, puis sur le poste.

Analyse des goulots et des flux

Un jumeau de ligne qui reçoit les événements de fin de cycle de chaque poste peut montrer où les pièces s'accumulent et quel poste prive le suivant. Comme le jumeau conserve la topologie (le poste A alimente le convoyeur B qui alimente le poste C), il peut mettre en évidence la contrainte au lieu de simplement lister les machines lentes.

Contexte des arrêts et des alarmes

Quand une machine s'arrête, le jumeau peut afficher l'alarme, les dernières valeurs des signaux associés et l'état des équipements en amont et en aval. La maintenance dispose du contexte avant d'arriver à la machine. Pour anticiper les pannes plutôt que d'y réagir, voir jumeau numérique et maintenance prédictive.

Énergie et utilités

Compresseurs, fours, groupes froids et pompes sont souvent les plus gros consommateurs d'énergie. Ajouter la puissance mesurée au jumeau permet de corréler la consommation avec l'état de production, par exemple un four maintenu en température alors que la ligne est à l'arrêt. L'article jumeau numérique énergétique approfondit la modélisation des flux d'énergie.

Formation et assistance à distance

Une vue 3D synchronisée aide les nouveaux opérateurs à comprendre le comportement d'une ligne et permet à des experts à distance de voir le même état que l'équipe sur place.

Architecture de référence d'un jumeau numérique d'usine

Un jumeau d'usine pragmatique comporte quatre couches. C'est leur découplage qui permet au jumeau d'évoluer sans recâbler l'usine.

  1. Les sources edge. Automates, commandes numériques, compteurs d'énergie et capteurs. Les données sont collectées par une passerelle edge (Node-RED, un client MQTT natif de l'automate ou un nœud edge Sparkplug B) et publiées via MQTT.
  2. Le broker MQTT comme colonne vertébrale des données. Chaque source publie une fois ; chaque consommateur s'abonne à ce dont il a besoin. C'est le modèle Unified Namespace. Un broker MQTT managé vous évite d'avoir à corriger, sécuriser et faire évoluer vous-même cette pièce centrale.
  3. Les services du jumeau. De petits abonnés qui calculent des valeurs dérivées (TRS, moyennes de temps de cycle, durées d'état) et écrivent l'historique dans une base de séries temporelles comme InfluxDB ou TimescaleDB.
  4. Les clients du jumeau. Visionneuses web 3D, tableaux de bord et outils d'analyse qui s'abonnent aux topics en direct et interrogent l'historique.

Le broker compte, car un jumeau n'est jamais plus exact que son chemin de données. Les retained messages fournissent instantanément à une visionneuse nouvellement ouverte le dernier état connu de chaque machine, au lieu d'attendre le prochain changement. L'expiration des messages de MQTT 5 permet d'écarter les valeurs périmées, afin qu'un jumeau n'affiche pas une machine « en marche » sur la base d'une valeur de la veille. L'article architecture d'un jumeau numérique détaille ces couches.

Structurer les données de l'usine avec des topics ISA-95

La hiérarchie des topics est le squelette du jumeau. Si les topics suivent la hiérarchie d'équipements ISA-95, le jumeau peut construire son arborescence directement à partir des noms de topics :

connectmq/<site>/<area>/<line>/<cell-or-machine>/<data-type>

connectmq/factory1/production/line1/cnc1/telemetry
connectmq/factory1/production/line1/cnc1/state
connectmq/factory1/production/line1/robot1/telemetry
connectmq/factory1/utilities/compressors/comp1/energy

Une visionneuse peut alors s'abonner à connectmq/factory1/production/line1/# pour un jumeau de ligne, ou à connectmq/factory1/+/+/+/state pour une vue d'ensemble des états machines du site.

ConnectMQ détecte les topics ISA-95 et Unified Namespace et les affiche dans une vue des appareils organisée par niveaux ISA-95, ce qui permet de vérifier facilement que la hiérarchie attendue par votre jumeau correspond à ce que publie réellement l'usine. Si votre edge utilise Sparkplug B, ConnectMQ décode les payloads Protobuf et peut les republier dans des topics ISA-95 ; par exemple spBv1.0/factory1/DDATA/line1/cnc1 devient connectmq/factory1/production/line1/cnc1/telemetry. Votre client de jumeau consomme alors des données décodées sur des topics ISA-95 lisibles. Le guide jumeau numérique ISA-95 explique en détail les niveaux de la hiérarchie.

Pratique : alimenter un jumeau de ligne à partir d'une machine simulée

Vous pouvez prototyper un jumeau de ligne en quelques minutes avec le serveur MQTT public gratuit broker.connectmq.com. N'oubliez pas qu'il sert aux tests et aux prototypes et que l'espace public est lisible par tous : utilisez un préfixe de topic unique et uniquement des données simulées.

Ce script Python (paho-mqtt 2.x) simule une machine CNC qui publie son état et sa télémétrie, avec des messages d'état retenus :

import json
import random
import time
import uuid

import paho.mqtt.client as mqtt

PREFIX = f"connectmq/demo/{uuid.uuid4().hex[:8]}/factory1/production/line1/cnc1"
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id=f"cnc-sim-{uuid.uuid4().hex[:6]}")


def on_connect(client, userdata, flags, reason_code, properties):
    print(f"Connected: {reason_code}. Publishing under {PREFIX}")


client.on_connect = on_connect
client.connect("broker.connectmq.com", 1883, keepalive=30)
client.loop_start()

state = "running"
parts = 0
try:
    while True:
        if random.random() < 0.05:
            state = random.choice(["running", "idle", "fault"])
            client.publish(f"{PREFIX}/state", json.dumps({"state": state, "ts": time.time()}), qos=1, retain=True)
        if state == "running":
            parts += 1
        telemetry = {
            "spindleRpm": random.randint(7800, 8200) if state == "running" else 0,
            "spindleLoadPct": round(random.uniform(35, 70), 1) if state == "running" else 0,
            "partCount": parts,
            "ts": time.time(),
        }
        client.publish(f"{PREFIX}/telemetry", json.dumps(telemetry), qos=0)
        time.sleep(1)
except KeyboardInterrupt:
    client.loop_stop()
    client.disconnect()

Observez-le depuis un autre terminal (remplacez le préfixe par celui qu'affiche le script) :

mosquitto_sub -h broker.connectmq.com -p 1883 -i twin-viewer-4821 -t "connectmq/demo/abcd1234/factory1/#" -v

Dans un jumeau basé sur navigateur, connectez-vous en WebSocket sécurisé à wss://broker.connectmq.com:8084/mqtt avec MQTT.js et associez chaque topic à un objet 3D : l'état pilote la couleur, la charge broche pilote une jauge. La démo web de jumeau numérique 3D de ConnectMQ fonctionne exactement ainsi, avec une machine CNC, un bras robotisé, un four, une cuve, un convoyeur et une pompe animés en direct via WSS.

Du prototype à la production

Une fois les parties prenantes convaincues par le prototype, passez à un broker privé. Créez-en un sur ConnectMQ et utilisez les YOUR_USERNAME, YOUR_PASSWORD et YOUR_CLIENT_ID générés, en TLS sur le port 8883. Checklist pour un jumeau d'usine en production :

  1. Figez la hiérarchie des topics et documentez-la. Renommer des topics plus tard casse tous les clients du jumeau.
  2. Utilisez les retained messages pour l'état, pas pour la télémétrie à haute fréquence.
  3. Définissez une expiration sur les valeurs qui ne doivent pas survivre à leur pertinence.
  4. Séparez les chemins temps réel et historique : le broker livre les données en direct ; un abonné écrit l'historique dans une base de données.
  5. Dimensionnez les connexions : comptez les passerelles edge, les services du jumeau et les sessions de visualisation. Le plan Serverless gratuit autorise jusqu'à 25 connexions ; le Serverless payant monte à 1 000 avec des abonnements partagés pour répartir la charge des services du jumeau ; Dedicated fournit un cluster isolé.
  6. Sécurisez l'edge : TLS partout, un identifiant par passerelle, pas de client ID partagé.

Pièges courants

  • Modéliser avant que les données n'existent. Des équipes passent des mois sur des modèles 3D, puis découvrent que l'automate n'expose pas les variables nécessaires. Inventoriez d'abord les signaux.
  • Interroger au lieu de réagir aux événements. Un jumeau qui interroge des bases de données toutes les quelques secondes paraît lent. Abonnez-vous directement au broker.
  • Pas d'horodatage à la source. Sans horodatage source, impossible de distinguer le délai réseau du comportement de la machine.
  • Un payload géant. Séparer état, télémétrie et alarmes dans des topics distincts permet aux clients de s'abonner de façon ciblée.

Construisez votre jumeau numérique d'usine sur ConnectMQ

Commencez avec le serveur MQTT public gratuit, puis passez à un broker MQTT managé privé lorsque vous connectez de vrais équipements. Inscrivez-vous sur app.connectmq.com pour le plan Serverless gratuit sans carte bancaire, créez un broker et utilisez l'explorateur de topics en direct et la vue des appareils ISA-95 pour vérifier les données de votre usine avant de construire le jumeau par-dessus.

Questions fréquentes

De quelles données un jumeau numérique d'usine a-t-il besoin en premier ?

Commencez par l'état machine, les compteurs de pièces et les alarmes actives de chaque machine. Ces trois signaux suffisent déjà pour la visibilité en direct, le contexte des arrêts et un TRS de base, et ils sont disponibles sur la plupart des automates et des commandes numériques.

Faut-il un modèle 3D pour un jumeau numérique d'usine ?

Non. De nombreux jumeaux efficaces utilisent un plan 2D ou une arborescence. La 3D aide pour la formation et le raisonnement spatial, mais c'est le modèle de données synchronisé qui en fait un jumeau.

Comment MQTT maintient-il un jumeau d'usine à jour ?

Les passerelles edge publient les changements sur des topics hiérarchiques et les clients du jumeau s'y abonnent, si bien que les mises à jour arrivent en quasi temps réel. Les retained messages donnent immédiatement le dernier état connu aux nouveaux clients.

Peut-on utiliser des appareils Sparkplug B avec un jumeau d'usine ?

Oui. ConnectMQ décode Sparkplug B et peut republier les données dans des topics ISA-95, afin que les clients du jumeau consomment des données décodées sans implémenter eux-mêmes Sparkplug.

Articles liés

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.