Die Technologie des digitalen Zwillings verbindet eine physische Anlage mit einem virtuellen Modell, das mit ihr synchron bleibt, sodass Sie sehen, analysieren und schließlich vorhersagen können, was das reale Objekt tut. Dieser Leitfaden erklärt die Konzepte und Typen digitaler Zwillinge, eine funktionierende Referenzarchitektur und wie Sie ein lebendiges 3D-Modell über MQTT mit Echtzeitdaten speisen, mit Code, den Sie noch heute ausführen können.
Was ist ein digitaler Zwilling wirklich?
Ein digitaler Zwilling ist eine virtuelle Repräsentation eines bestimmten physischen Objekts, Prozesses oder Systems, die kontinuierlich mit Daten ihres realen Gegenstücks aktualisiert wird. Die drei entscheidenden Begriffe in dieser Definition sind bestimmt, kontinuierlich und aktualisiert.
- Bestimmt: Ein Zwilling repräsentiert Pumpe Nummer 3 an Linie 2, nicht „eine Pumpe“ im Allgemeinen. Ein generisches CAD-Modell ist ein Entwurf, kein Zwilling.
- Kontinuierlich: Die Verbindung zur physischen Anlage ist dauerhaft, kein einmaliger Import.
- Aktualisiert: Daten fließen automatisch von der Anlage ins Modell, typischerweise nahezu in Echtzeit.
Diese Unterscheidung ist wichtig, weil der Begriff oft auf jede 3D-Visualisierung oder jede Simulation ausgedehnt wird. Eine detaillierte Simulation eines Förderbands, die mit angenommenen Eingaben läuft, ist wertvoll, wird aber erst zum Zwilling, wenn sie von Geschwindigkeit, Last und Fehlerzuständen des tatsächlichen Förderbands gesteuert wird. Der Artikel Digitaler Zwilling vs. Simulation untersucht diese Grenze ausführlich.
Das Konzept ist nicht neu. Ingenieure halten seit Langem physische Nachbauten oder detaillierte Modelle kritischer Systeme vor, um sie zu verstehen. Geändert haben sich die Kosten: Günstige Sensoren, allgegenwärtige Konnektivität, schlanke Messaging-Protokolle und browserbasiertes 3D-Rendering machen es praktikabel, auch gewöhnlichen Anlagen ein lebendiges virtuelles Gegenstück zu geben.
Stufen der Zwillingstechnologie: Modell, Schatten, Zwilling
Eine hilfreiche Einteilung der Technologie des digitalen Zwillings richtet sich nach der Richtung des Datenflusses zwischen physischer und digitaler Seite.
| Stufe | Datenfluss | Was sie leistet | Typisches Beispiel |
|---|---|---|---|
| Digitales Modell | Kein automatischer | Statische Repräsentation, manuell aktualisiert | CAD-Modell, Layoutzeichnung des Werks |
| Digitaler Schatten | Physisch zu digital | Spiegelt den Live-Zustand für Monitoring und Analyse | 3D-Linienansicht mit Maschinenzuständen und Temperaturen |
| Digitaler Zwilling | Physisch zu digital und zurück | Spiegelt den Zustand und kann Befehle oder Sollwerte senden | Zwilling, der einen Pumpensollwert nach Freigabe durch einen Bediener anpasst |
Die meisten erfolgreichen Projekte beginnen als digitaler Schatten, weil sich Einweg-Daten leichter absichern und validieren lassen. Der bidirektionale Schritt folgt später und braucht sorgfältige Kontrollen. Digitaler Zwilling vs. digitaler Schatten erklärt, warum diese Abfolge der sichere Standard ist.
Typen digitaler Zwillinge
Zwillinge werden auch nach ihrem Umfang eingeteilt. Jeder Umfang beantwortet andere Fragen und braucht andere Daten.
- Komponentenzwilling: ein einzelnes Teil wie ein Lager, ein Motor oder ein Ventil. Nützlich für die Zustandsüberwachung kritischer Komponenten.
- Anlagenzwilling: eine komplette Maschine aus Komponenten, etwa eine CNC-Maschine oder ein Roboterarm, deren Daten in einer Ansicht zusammengeführt werden.
- System- oder Einheitenzwilling: mehrere Anlagen, die zusammenarbeiten, etwa eine Produktionslinie, eine HLK-Anlage oder eine Verpackungszelle. Hier werden Engpässe und Wechselwirkungen sichtbar.
- Prozesszwilling: ein gesamter Prozess oder Standort, der Anlagendaten mit Fertigungsaufträgen, Qualität und Energie kombiniert. Diese Stufe unterstützt Planungs- und Optimierungsentscheidungen.
Die Umfänge verschachteln sich auf natürliche Weise, ein weiterer Grund, klein anzufangen: Ein korrekt gebauter Anlagenzwilling wird später zum Baustein eines Linienzwillings. Weitere Details und Beispiele zu jedem Umfang finden Sie in Typen digitaler Zwillinge.
Wo digitale Zwillinge Nutzen stiften
Der Nutzen eines Zwillings entsteht, indem er den Weg zwischen „etwas passiert“ und „die richtige Person versteht es“ verkürzt. Typische Anwendungen sind:
- Fernüberwachung: Ein Ingenieur sieht den Zustand einer Linie in einem anderen Gebäude oder Land, ohne hinzugehen oder rohe Tags zu lesen.
- Vorausschauende Wartung: Vibration, Temperatur und Betriebsstunden im Kontext der Anlage zu kombinieren, macht Verschleißmuster leichter erkennbar. Siehe digitaler Zwilling für vorausschauende Wartung.
- Schulung und Einarbeitung: Neue Bediener lernen die Anlage risikofrei an einem Zwilling kennen, der sich wie das Original verhält.
- Inbetriebnahme und Was-wäre-wenn-Analysen: eine Steuerungs- oder Layoutänderung virtuell testen, bevor sie umgesetzt wird.
- Energieoptimierung: sichtbar machen, wohin die Energie fließt, verknüpft mit der tatsächlichen Produktion.
- Gebäude und Infrastruktur: Belegung, HLK und Energie in einem räumlichen Modell, wie bei einem digitalen Zwilling für Gebäude.
Speziell für die Fertigung zeigt der Anwendungsfall digitaler Zwilling einer Fabrik, wie sich diese Anwendungen in einer echten Produktion verbinden.
Eine Referenzarchitektur für digitale Zwillinge
Welche Werkzeuge Sie auch wählen: Ein funktionierender Zwilling besteht aus fünf Bausteinen. Die richtigen Grenzen zwischen ihnen machen einen Zwilling wartbar.
1. Physische Anlagen und Sensoren
Maschinen, SPS, Sensoren und Zähler erzeugen die Rohsignale: Zustände, Temperaturen, Drehzahlen, Zählerstände, Alarme. Ältere Anlagen benötigen eventuell Nachrüstsensoren.
2. Edge-Konnektivität
Gateways lesen native Protokolle wie Modbus, OPC UA oder Herstellerschnittstellen, wandeln Werte in technische Einheiten um und veröffentlichen sie als Nachrichten. Mikrocontroller wie der ESP32 können bei einfachen Sensoren direkt veröffentlichen.
3. Echtzeit-Messaging-Backbone
Hier spielt MQTT seine Stärken aus. Jede Anlage veröffentlicht auf ein Topic, und jeder Abnehmer, auch der Zwilling, abonniert. Ein Broker entkoppelt den Zwilling von den Geräten: Das 3D-Modell muss nicht wissen, wie man mit einer SPS spricht, und die SPS muss nicht wissen, dass der Zwilling existiert. Zwei MQTT-Funktionen passen besonders gut zu Zwillingen:
- Retained Messages speichern den letzten Wert jedes Zustands-Topics, sodass ein Zwilling beim Öffnen sofort den aktuellen Zustand zeigt, statt auf das nächste Update zu warten. Zustand des digitalen Zwillings mit Retained MQTT Messages ist ein vollständiges Tutorial zu diesem Muster.
- Last-Will-Nachrichten lassen den Broker melden, dass ein Gerät offline gegangen ist, sodass der Zwilling veraltete Anlagen klar kennzeichnen kann, statt eingefrorene Zahlen anzuzeigen, als wären sie live.
Der Broker ist kritische Infrastruktur für den Zwilling, deshalb wählen viele Teams einen verwalteten MQTT-Broker, statt selbst einen zu betreiben.
4. Zwillingsmodell und Zustand
Der Zwilling selbst hält die Anlagenhierarchie, den aktuellen Zustand jeder Anlage und die Beziehungen zwischen den Anlagen. Das kann so einfach sein wie ein nach Topic geschlüsseltes JSON-Objekt oder so formal wie ein in DTDL oder der von der Plattform Industrie 4.0 vorangetriebenen Verwaltungsschale (Asset Administration Shell) beschriebenes Modell. Der Leitfaden zur Architektur des digitalen Zwillings vergleicht diese Ansätze.
5. Anwendungen und Visualisierung
Dashboards, 3D-Szenen, Analytics und Alarmierung konsumieren den Zustand des Zwillings. Eine browserbasierte 3D-Ansicht mit Three.js oder Babylon.js ist heute für die meisten Teams eine realistische Option, wie einen digitalen Zwilling mit Three.js bauen zeigt.
Echtzeitdaten: Topics für einen Zwilling entwerfen
Die Topic-Struktur bestimmt, wie leicht der Zwilling seine Daten findet. In Industrie-4.0-Projekten hat sich dafür der Unified Namespace (UNS) etabliert: Der MQTT-Broker hält den aktuellen Zustand des gesamten Werks in einer einzigen Topic-Struktur, und die ISA-95-Ausrüstungshierarchie (IEC 62264: Enterprise → Site → Area → Line → Cell) macht diese Struktur vorhersehbar, etwa acme/werk-stuttgart/montage/linie-1/zelle-3/temperatur. Der Zwilling ist dann ein Konsument unter vielen, neben MES, SCADA und ERP. Ein vereinfachtes Beispiel:
acme/plant1/machining/line1/cnc1/state (retained) {"state":"RUNNING"}
acme/plant1/machining/line1/cnc1/telemetry {"spindleTempC":41.2,"rpm":8000}
acme/plant1/utilities/tanks/tank1/level (retained) {"levelPct":63.5}
acme/plant1/utilities/pumps/pump1/command {"setpointRpm":1450}
Jedes 3D-Objekt in der Szene entspricht einem Pfad in diesem Baum, sodass die Bindung ein Nachschlagen ist statt individueller Code pro Gerät. ConnectMQ erkennt ISA-95- und Unified-Namespace-Topics und gruppiert Geräte im Portal nach diesen Ebenen, wodurch Sie leicht prüfen können, ob jede Anlage, die der Zwilling erwartet, tatsächlich veröffentlicht. Wenn ein Teil Ihres Werks Sparkplug B nutzt, kann ConnectMQ es dekodieren und in ISA-95-Topics neu veröffentlichen, sodass der Zwilling einen einheitlichen UNS abonniert. Wie Sparkplug B und UNS zusammenspielen, erklärt Sparkplug B und Unified Namespace.
Die Latenz ist selten der Engpass. Für die Visualisierung wirken ein bis zwei Updates pro Sekunde und Anlage für Menschen live. Wichtiger ist Konsistenz: Der Zwilling sollte den Zeitstempel jedes Werts anzeigen und Daten als veraltet markieren, wenn Updates ausbleiben. Latenz beim Echtzeit-Zwilling erklärt, woher Verzögerungen tatsächlich kommen.
Praxis: Einen lebendigen 3D-Zwilling mit MQTT-Daten bauen
Das folgende Beispiel baut einen minimalen Zwilling eines Lagertanks. Ein Python-Skript übernimmt die Rolle des physischen Tanks und veröffentlicht seinen Füllstand, und eine Browserseite rendert einen 3D-Tank, dessen Füllhöhe den Daten in Echtzeit folgt. Beide verbinden sich mit dem kostenlosen öffentlichen Bereich von broker.connectmq.com.
Schritt 1: Die physische Anlage simulieren
pip install "paho-mqtt>=2.0"
import json
import math
import sys
import time
import uuid
import paho.mqtt.client as mqtt
TWIN_ID = sys.argv[1] if len(sys.argv) > 1 else uuid.uuid4().hex[:8]
BASE = f"connectmq/demo/{TWIN_ID}/plant1/tank1"
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id=f"tank-sim-{TWIN_ID}")
client.will_set(f"{BASE}/status", "offline", qos=1, retain=True)
client.connect("broker.connectmq.com", 1883, keepalive=30)
client.loop_start()
client.publish(f"{BASE}/status", "online", qos=1, retain=True)
print(f"Twin ID: {TWIN_ID} topic: {BASE}/level")
t = 0.0
while True:
level = 50 + 40 * math.sin(t / 20) # füllt und leert sich langsam zwischen 10 und 90 Prozent
payload = {"levelPct": round(level, 1), "ts": int(time.time() * 1000)}
client.publish(f"{BASE}/level", json.dumps(payload), qos=1, retain=True)
t += 1
time.sleep(1)
Starten Sie es mit python tank_sim.py und notieren Sie die ausgegebene Twin-ID. Das Füllstands-Topic ist retained, daher zeigt der Zwilling den letzten Wert in dem Moment, in dem er sich verbindet.
Schritt 2: Den Zwilling im Browser rendern
Legen Sie ein Projekt mit einem Bundler wie Vite an (npm create vite@latest twin -- --template vanilla), installieren Sie die Bibliotheken mit npm install three mqtt und ersetzen Sie main.js durch den folgenden Code. Setzen Sie TWIN_ID auf den vom Simulator ausgegebenen Wert.
import * as THREE from "three";
import mqtt from "mqtt";
const TWIN_ID = "replace-with-your-twin-id";
const BASE = `connectmq/demo/${TWIN_ID}/plant1/tank1`;
// Szene einrichten
const scene = new THREE.Scene();
scene.background = new THREE.Color(0x1e2329);
const camera = new THREE.PerspectiveCamera(50, innerWidth / innerHeight, 0.1, 100);
camera.position.set(4, 3, 6);
camera.lookAt(0, 1, 0);
const renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.setSize(innerWidth, innerHeight);
document.body.appendChild(renderer.domElement);
scene.add(new THREE.AmbientLight(0xffffff, 0.6));
const sun = new THREE.DirectionalLight(0xffffff, 1.2);
sun.position.set(5, 8, 5);
scene.add(sun);
// Tankhülle (transparent) und Flüssigkeit (nach Füllstand skaliert)
const HEIGHT = 2;
const shell = new THREE.Mesh(
new THREE.CylinderGeometry(1, 1, HEIGHT, 48, 1, true),
new THREE.MeshStandardMaterial({ color: 0x9aa4ae, transparent: true, opacity: 0.25, side: THREE.DoubleSide })
);
shell.position.y = HEIGHT / 2;
scene.add(shell);
const liquidGeometry = new THREE.CylinderGeometry(0.95, 0.95, HEIGHT, 48);
liquidGeometry.translate(0, HEIGHT / 2, 0); // Drehpunkt unten, damit die Skalierung nach oben füllt
const liquid = new THREE.Mesh(liquidGeometry, new THREE.MeshStandardMaterial({ color: 0x2f80ed }));
scene.add(liquid);
let targetLevel = 0;
let online = false;
// MQTT-Verbindung über Secure WebSocket
const client = mqtt.connect("wss://broker.connectmq.com:8084/mqtt", {
clientId: `twin-viewer-${Math.random().toString(16).slice(2, 10)}`,
protocolVersion: 5,
});
client.on("connect", () => {
client.subscribe(`${BASE}/#`, { qos: 1 });
});
client.on("message", (topic, payload) => {
if (topic.endsWith("/level")) {
const data = JSON.parse(payload.toString());
targetLevel = Math.min(Math.max(data.levelPct / 100, 0.001), 1);
} else if (topic.endsWith("/status")) {
online = payload.toString() === "online";
liquid.material.color.set(online ? 0x2f80ed : 0x6b7280); // grau, wenn die Anlage offline ist
}
});
// Sanft zum zuletzt gemeldeten Füllstand animieren
function animate() {
liquid.scale.y += (targetLevel - liquid.scale.y) * 0.1;
renderer.render(scene, camera);
requestAnimationFrame(animate);
}
animate();
addEventListener("resize", () => {
camera.aspect = innerWidth / innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(innerWidth, innerHeight);
});
Starten Sie den Dev-Server mit npm run dev und öffnen Sie die Seite. Die Flüssigkeit steigt und fällt mit dem simulierten Tank. Beenden Sie das Python-Skript hart, und sobald das Keep-Alive abgelaufen ist, veröffentlicht der Broker den Last Will und die Flüssigkeit wird grau, genau das Signal für veraltete Daten, das ein echter Zwilling braucht.
Dasselbe Muster skaliert auf eine ganze Linie: ein Abonnement pro Anlagenpfad, eine Zuordnungstabelle vom Topic zum 3D-Objekt. IoT-Daten an ein 3D-Modell binden behandelt diese Zuordnung für importierte GLTF-Modelle mit vielen Teilen. Die eigene 3D-Digital-Twin-Web-Demo von ConnectMQ nutzt diesen Ansatz, um eine Fabrik mit CNC-Maschine, Roboterarm, Ofen, Tank, Förderband und Pumpe über Secure WebSocket zu animieren.
Denken Sie daran, dass der öffentliche Bereich dieses kostenlosen öffentlichen MQTT-Brokers für jeden lesbar ist und Topics auf acht Ebenen begrenzt; er ist für Tests und Prototypen gedacht, nutzen Sie ihn also nur für simulierte Daten wie diese. Echte Werksdaten gehören auf einen privaten Broker mit Zugangsdaten.
Eine praxisnahe Roadmap für Ihren ersten digitalen Zwilling
Nutzen Sie diese Checkliste, um von der Idee zu einem Zwilling zu kommen, den Menschen tatsächlich nutzen:
- Wählen Sie eine Anlage mit einer echten Frage. „Warum fällt diese Pumpe alle paar Wochen aus?“ ist besser als „das ganze Werk spiegeln“.
- Legen Sie die Stufe fest. Beginnen Sie als digitaler Schatten; ergänzen Sie Befehle erst, wenn der Monitoring-Ansicht vertraut wird.
- Listen Sie die Signale auf, die der Zwilling braucht, und stellen Sie sicher, dass jedes zuverlässig gelesen werden kann.
- Definieren Sie Topics und Payloads nach ISA-95 als Teil Ihres Unified Namespace, mit Retained-Zustand und einem Status-Topic pro Anlage.
- Prototyp mit simulierten Daten auf einem öffentlichen MQTT-Broker, um die Visualisierung parallel zur Gerätearbeit aufzubauen.
- Binden Sie echte Geräte über TLS mit Zugangsdaten pro Gerät an einen privaten Broker an.
- Ergänzen Sie Kontext: Schwellenwerte, Einheiten, Wartungshistorie und Kennzeichnung veralteter Daten.
- Messen Sie die Nutzung. Wenn Bediener und Ingenieure den Zwilling nicht öffnen, finden Sie heraus, welche Frage er nicht beantwortet.
Der Leitfaden einen digitalen Zwilling bauen vertieft jeden Schritt, und das Reifegradmodell für digitale Zwillinge hilft Ihnen zu planen, was nach dem ersten Erfolg kommt.
Typische Stolperfallen
- Mit dem 3D-Modell beginnen. Eine schöne Szene mit unzuverlässigen Daten verliert schnell das Vertrauen. Bringen Sie zuerst die Datenpipeline in Ordnung.
- Punkt-zu-Punkt-Geräteverbindungen. Ein Zwilling, der jedes Gerät direkt abfragt, skaliert nicht und schafft für jeden Abnehmer eine zweite Integration.
- Veraltete Daten verbergen. Zeigen Sie immer an, wann ein Wert zuletzt aktualisiert wurde, und markieren Sie Offline-Anlagen.
- Bidirektionale Steuerung zu früh. Befehle aus einem Zwilling brauchen Autorisierung, Bestätigung und Grenzen. Sicherheitsfunktionen bleiben in der SPS, niemals im Zwilling.
- Festlegung auf das Modellformat eines Anbieters, bevor Sie Ihre Anforderungen kennen. Vergleichen Sie Optionen in Open-Source-Tools für digitale Zwillinge.
Betreiben Sie Ihren digitalen Zwilling mit ConnectMQ
Ein digitaler Zwilling ist nur so gut wie sein Live-Datenfeed. Erstellen Sie unter app.connectmq.com ein kostenloses Konto im Serverless-Plan, ganz ohne Kreditkarte, legen Sie einen Broker an und verwenden Sie den generierten Benutzernamen, das Passwort und die Client ID für Ihre Geräte und Ihren Zwillings-Viewer. Browser verbinden sich über Secure WebSocket auf Port 8084 mit dem Pfad /mqtt, Geräte nutzen TLS auf Port 8883. Wenn Sie mehr Verbindungen oder eine isolierte Umgebung brauchen, wechseln Sie zu einem Plan für einen Cloud-MQTT-Broker, ohne Ihre Topics oder Ihren Code zu ändern.
Häufig gestellte Fragen
Was ist der Unterschied zwischen einem digitalen Zwilling und einem 3D-Modell?
Ein 3D-Modell ist eine statische Repräsentation. Es wird erst dann Teil eines digitalen Zwillings, wenn es mit einer bestimmten physischen Anlage verknüpft ist und kontinuierlich mit deren Live-Daten aktualisiert wird.
Warum passt MQTT gut zur Technologie des digitalen Zwillings?
MQTT entkoppelt Geräte über Publish/Subscribe vom Zwilling, Retained Messages liefern dem Zwilling beim Öffnen sofort den aktuellen Zustand, und Last-Will-Nachrichten machen Offline-Anlagen sichtbar. Es ist schlank genug für Mikrocontroller und funktioniert im Browser über WebSocket.
Brauche ich eine kommerzielle Plattform, um einen digitalen Zwilling zu bauen?
Nein. Viele wirkungsvolle Zwillinge entstehen aus offenen Komponenten: einem MQTT-Broker, einem kleinen Zustandsmodell und einer browserbasierten 3D-Bibliothek wie Three.js. Kommerzielle Plattformen ergänzen Modellierungs- und Integrationsfunktionen, die vor allem in größerem Maßstab relevant sind.
Kann ein digitaler Zwilling die physische Anlage steuern?
Das kann er, wenn er Befehle über die Messaging-Schicht zurücksendet, aber dies sollte erst erfolgen, nachdem sich die Monitoring-Ansicht bewährt hat. Befehle brauchen Autorisierung und Bestätigung, und sicherheitskritische Logik muss in der SPS oder Steuerung bleiben.
Kann ich das 3D-Beispiel ohne Konto testen?
Ja. Das Beispiel nutzt den öffentlichen Bereich von broker.connectmq.com, der anonyme Verbindungen mit jeder eindeutigen, nicht leeren Client ID akzeptiert. Verwenden Sie dort nur simulierte oder unkritische Daten, da der öffentliche Bereich für jeden lesbar ist.



