

Wer eine Fertigungshalle leitet, verfügt wahrscheinlich bereits über irgendeine Art von Überwachungssystem – oder plant dessen Anschaffung. Die Entscheidung für das richtige System fällt oft schwer, da Komplexität, Preisgestaltung und Funktionsumfang stark variieren. Dieser Beitrag soll Ihnen helfen, einen eigenen Dashboard-Prototyp zu erstellen. So können Sie evaluieren, welche Funktionen für Ihren Anwendungsfall wirklich nützlich sind und welche redundant erscheinen.
In vielen Fabriken wurden Maschinen über lange Zeiträume hinweg beschafft. Das Resultat ist oft ein heterogener Maschinenpark verschiedener Hersteller, Generationen, Schnittstellen und Protokolle. Dies führt zu Problemen, wenn alle Anlagen an dasselbe System angebunden werden sollen.
In diesem Beispiel gehen wir davon aus, dass die Maschinen über eine Ethernet-Schnittstelle verfügen oder darauf aufgerüstet werden können. Eine Maschine unterstützt nur Modbus, die andere Profinet. Node-RED bietet jedoch eine breite Palette an unterstützten Protokollen. Auch Nicht-Ethernet-Protokolle wie RS-485 und IO-Link werden unterstützt, sofern der Host-Computer über entsprechende Adapter verfügt.
Wir haben Node-RED für diesen Beitrag gewählt, weil seine visuelle, blockbasierte Oberfläche und die umfangreiche Bibliothek das schnelle Erstellen von Prototypen, einfache Modifikationen und eine gute Lesbarkeit der Projekte ermöglichen. Alle „Nodes“ (Blöcke) sind in Flows organisiert. Diese machen den Datenfluss so explizit, dass auch bei Wartung oder Upgrades sofort ersichtlich ist, woher Daten kommen, wie sie verarbeitet werden und in welchem Dashboard-Element sie landen.
Einen zusätzlichen Wert aus einer Maschine auszulesen, bedeutet oft nur die Änderung eines Feldes in der Konfiguration. Ihn anzuzeigen, erfordert lediglich das Hinzufügen eines weiteren Nodes. Node-RED erleichtert zudem die Speicherung von Daten für spätere Referenzen, die Berechnung komplexer Kennzahlen (wie OEE - Overall Equipment Effectiveness) oder die Weitergabe an Systeme wie Prometheus und Grafana für tiefgehende Analysen.
Erste Schritte
Um einen Node-RED Dashboard-Prototyp einzurichten, müssen Sie zunächst Node.js (Version 18 oder höher) und Node-RED installieren. Dies ist plattformabhängig und nicht Thema dieses Beitrags; folgen Sie am besten den Anweisungen unter: Node.js und Node-RED.
Sobald die Installation abgeschlossen ist, starten Sie die lokale Node-RED-Instanz. Öffnen Sie über das Menü oben rechts die Option Manage palette (Palette verwalten) und installieren Sie die für die Dashboard-Erstellung und Maschinenanbindung benötigten Module:
- node-red-contrib-s7
- @flowfuse/node-red-dashboard
- node-red-contrib-modbus

Mit den installierten Modulen können wir mit dem Aufbau des Dashboards beginnen. Die Bausteine von Node-RED sind Nodes – konfigurierbare Blöcke, die verschiedene Funktionen ausführen und über Nachrichten (Messages) miteinander kommunizieren. Diese Nodes können je nach Aufgabe in Flows, Sub-Flows und Gruppen organisiert werden.
Für diesen Prototyp benötigen wir zwei Maschinen, genauer gesagt zwei Simulatoren:
- Simulierte Profinet-Maschine: Läuft außerhalb von Node-RED und simuliert einen Flüssigkeitstank (Füllstand, Temperatur) sowie einen Motor (Geschwindigkeit).
- Simulierte Modbus-Maschine: Wird innerhalb von Node-RED mit wenigen einfachen Nodes simuliert („Mock“) und verfügt über ein Ventil und einen Durchflussmesser.
Zuerst richten wir einen leeren Modbus-Server ein und nutzen einige Modbus Write Nodes, um Daten in den Speicherbereich des Servers zu schreiben.


Auslesen der Maschinendaten
Um Daten im Dashboard anzuzeigen, müssen wir sie zunächst von den Maschinen lesen. Falls die Daten, die von den Schnittstellen-Nodes gesendet werden, nicht dem entsprechen, was die Dashboard-Nodes erwarten, müssen sie transformiert werden.
Lesen von einer Profinet-Maschine
Daten einer Profinet-Maschine (z.B. Siemens S7) können mit dem s7 in Node abgerufen werden. Wir verwenden den Modus All variables, um nicht für jeden Wert einen eigenen Node nutzen zu müssen.

Wir müssen zudem die Verbindungseinstellungen konfigurieren (IP/Port der Maschine) und die Zykluszeit anpassen, falls die Daten häufiger aktualisiert werden sollen. Unsere simulierte Maschine hat folgende Eigenschaften, die in der Variablenliste konfiguriert werden müssen (Datentypen, die hier nicht gelistet sind, finden sich in der Modul-Dokumentation):
| Name | Data Block | Data Type | Offset |
|---|---|---|---|
| Machine name | DB1 | String (10 char.) | 0 |
| Speed | DB2 | Unsigned integer | 0 |
| Temperature | DB2 | Integer | 2 |
| Fill percentage | DB2 | Unsigned integer | 4 |
Um die eingehenden Daten zu überprüfen, können Sie einfach einen Debug Node an den S7 Node anhängen und die Ausgabe über STRG+G und dann D im Debug-Fenster betrachten.

Aufbereitung der Profinet-Daten
Ein wichtiger Aspekt der Kommunikation zwischen Nodes ist, dass alle Nachrichten im JSON-Format vorliegen. Jedes msg-Objekt hat eine payload-Eigenschaft, die unsere relevanten Daten enthält. Im Fall unseres konfigurierten s7 in Nodes sieht das msg-Objekt etwa so aus:
1{2 "payload": {3 "article_name": "Article 1",4 "speed": 0,5 "temp": 20,6 "percentage": 07 }8}
Da Anzeige-Instrumente (Gauges) für Einzelwerte nur diesen spezifischen Wert in der Payload erwarten, müssen wir die Payload bereinigen. Dies geschieht, indem wir die Nachricht zuerst durch einen change Node leiten.

Hier weisen wir den change Node an, den Payload-Wert der neuen Nachricht durch den spezifischen Wert (z.B. speed) der eingehenden Nachricht zu ersetzen. Wir erhalten dann ein msg-Objekt, das so aussieht:
1{2 "payload": 03}
Lesen von einer Modbus-Maschine
Daten einer Modbus-Maschine können in Node-RED auf verschiedene Weisen gelesen werden: als großer Datenstapel (Batch), als einzelner Datenpunkt oder basierend auf einer Input-Nachricht. Da wir im Profinet-Beispiel das Batch-Reading genutzt haben, verwenden wir hier das Abrufen einzelner Datenpunkte mit dem Modbus - Read Node.

Der Durchflusswert ist ein Integer, also lesen wir eine Speicherstelle aus den Holding Registers und prüfen sie jede Sekunde. Auch hier müssen IP und Port korrekt gesetzt sein. Das Ventil kann nur offen oder geschlossen sein, daher lesen wir den Coil Status als Boolean. Da der Modbus - Read Node mehrere Werte gleichzeitig lesen kann, sendet er die Payload als Array. Wir benötigen nur den ersten Eintrag. Wie im Profinet-Beispiel lässt sich dies mit einem change Node extrahieren.

Erstellung des Dashboards
Für ein funktionales Dashboard ist ein sauberes Layout entscheidend. Dies geschieht im Dashboard - Layout Menü. Hier können wir Seiten und Gruppen hinzufügen oder bearbeiten. In diesem Beispiel erstellen wir eine Seite (Sample Dashboard) mit zwei Gruppen – eine für jede Maschine.

Innerhalb der Gruppen können wir Elemente neu anordnen oder die Rastergröße (Grid Size) bearbeiten.

Nun fügen wir die Dashboard-Elemente hinzu. Für dieses Beispiel genügen fünf gauge Nodes (Rundinstrumente) und ein text Node. Der text Node wird mit dem change Node für den Artikelnamen verbunden, die Gauges mit den restlichen change Nodes. Sobald wir jedem Gauge einen Namen geben, nimmt das Dashboard Form an.

Jedes Gauge muss entsprechend der anzuzeigenden Daten konfiguriert werden. Für die Motorgeschwindigkeit bedeutet das zum Beispiel: Rastergröße auf 2x2, Typ auf „3/4 Kreis mit Nadel“, Bereich von 0 bis 1000 und Definition der Segmente, Beschriftung und Einheit. Da das Ventil nur zwei Zustände hat, können wir hierfür den Typ Tile verwenden und die Zustände farblich (Rot/Grün) codieren.

Ist alles eingerichtet, klicken wir auf Deploy, um die Änderungen anzuwenden, und dann im Dashboard-Tab auf das Icon zum Öffnen, um zum neuen Dashboard weitergeleitet zu werden.

Nehmen wir an, wir möchten den Temperaturverlauf der letzten 30 Minuten verfolgen. Wir fügen einfach einen chart Node hinzu, vergrößern das Raster der Profinet-Gruppe, verbinden den Chart mit dem Temperatur-Node und konfigurieren Größe sowie das X-Achsen-Limit.

Mit etwas Feinjustierung der Rastergrößen erhalten Sie ein professionell wirkendes Dashboard.

Daten müssen nicht nur empfangen werden (Read-only). Wenn wir annehmen, dass das Ventil der Modbus-Maschine steuerbar ist, können wir eine Kopie des Set Valve Nodes aus der Maschinensimulation nutzen und dessen Eingang mit einem Dashboard switch Node verbinden. Dies ermöglicht uns das Umschalten des Status direkt über das UI.


Die Eingaben an die Maschine müssen sich nicht auf Buttons beschränken. Sie können Texteingabefelder hinzufügen (z.B. für Artikelnummern) oder Dropdown-Menüs zur Zustandsauswahl. Es gibt sogar Nodes für Datei-Uploads, um Konfigurationsdateien an Maschinen zu senden.
Falls Sie Daten speichern möchten, verbinden Sie einfach einen Formatierungs-Node (wie csv oder xml) und einen write file Node mit dem Ausgang des gewünschten Wertes. Je mehr Sie mit den verschiedenen Nodes experimentieren, desto mehr Möglichkeiten werden Sie entdecken.
Fazit
Das ist es. Sie verfügen nun über ein Dashboard zur Überwachung Ihrer Maschinen, das Sie innerhalb von Minuten selbst einrichten und anpassen können. Eine weitere Maschine oder einen zusätzlichen Messwert hinzuzufügen, ist einfacher, als ein Bild in ein Word-Dokument einzufügen. Sollten Sie eine Maschine verbinden wollen, deren Protokoll hier nicht behandelt wurde, ist die Wahrscheinlichkeit hoch, dass Sie in der riesigen Node-RED-Bibliothek einen passenden Node finden.
Dieser Beitrag soll Ihnen helfen einzuschätzen, ob Node-RED für Ihre Zwecke ausreicht, ob Sie ein fortgeschritteneres Monitoring-Tool benötigen – oder ob Dashboards Ihre Arbeit vielleicht gar nicht erleichtern und das HMI der Maschine seinen Job bereits gut genug macht.

Optimieren Sie Ihre CDN-Effizienz mit Cache Control-Headers
Nutzen Sie die volle Power von CDNs mit optimalen Cache-Control-Headern. Entdecken Sie, wie must-revalidate und Etags die Content-Auslieferung verbessern und warum sie no-cache überlegen sind.


Implementierung einer Custom RAG-Pipeline für technische Dokumente
In diesem Artikel untersuchen wir den Einsatz von Qdrant, gpt4o-mini für Embeddings und OCR sowie DSPy, um eine optimierte Retrieval Augmented Generation (RAG) Pipeline für technische Dokumentationen zu entwickeln.


