Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Beitrag drucken

Arbeiten mit Node-Red

Visueller Werkzeugkasten
für das Internet der Dinge

Mit Node-Red sollen sich schnell, einfach und kostengünstig Prototypen für industrielle IoT-Anwendungen erstellen lassen. Dafür sorgt die breite Unterstützung für ganz verschiedene Protokolle und Plattformen – und vor allem die aktive und agile Community.

Bild: Everythingpossible / Fotolia.com

Bild: Everythingpossible / Fotolia.com

IoT-Lösungen benötigen häufig die Kombination von spezifischen Geräteschnittstellen und Online-Diensten, um neue und für den Benutzer sinnvolle Anwendungen zu schaffen. Entwicker müssen aber oft viel Zeit aufwenden, um zu verstehen, wie diese Schnittstellen funktioneren. Zeit, die sie besser dafür verwenden könnten, um den realen Wert ihrer Lösung zu erarbeiten. Hier setzt Node-Red mit einem webbasierenden Werkzeug an, in dem Entwickler grafisch den Ablauf der Logik zusammenstellen und dem Server zur Ausführung übergeben. Die Grundidee hinter Node-Red beruht auf der flowbasierten Programmierung (FBP). Diese ermöglicht es, den Ablauf einer Anwendungslogik durch die Verschaltung von konfigurierbaren Knoten abzubilden. Die ersten (sinnvollen) Flows für Node-Red haben die meisten Entwickler innerhalb weniger Minuten zusammengestellt und zum Ablauf gebracht. Node-Red ist damit auch ein ideales Werkzeug, um einen schnellen Prototype zu erstellen und die grundlegenden Funktionen mit den Nutzern auszutesten. Die Knoten in Node-Red stellen die grundlegenden Funktionen bereit:

  • Eingangsknoten, die Ereignisse von angeschlossenen Systemen entgegennehmen
  • Funktionsknoten, die auf die Ereignisse reagieren, sie verarbeiten und weiterleiten
  • Ausgangsknoten, die Ereignisse an andere Systeme weiterleiten

Für Node-Red stehen mittlerweile über 600 Knoten zur Verfügung – ein Teil als Bestandteil des Kernsystems, aber die Mehrzahl der Knoten kommt aus der Mitarbeit der Community. Die Funktionalität der Knoten umfasst einen großen Bereich von Protokollen sowohl aus dem IoT-Bereich (zum Beispiel MQTT, COAP) wie auch aus dem Bereich der industriellen Automatisierung (zum Beispiel OPCUA, Modbus) bis hin zur Anbindung von Datenbanken, Webdiensten oder sozialen Netzwerken. Die Standardknoten für Benutzerschnittstellen können zur schnellen Erzeugung von Dashboards verwendet werden. Der Node-Red-Server verwendet als Laufzeitumgebung node.js – ein ressourcensparender JavaScript-Server. Diese Umgebung skaliert von leichtgewichtigen Linuxplattformen auf Basis von ARM-Prozessoren über traditionelle Windows- und Linux Computer bis in die Cloud wie zum Beispiel IBM Bluemix. Node-Red wurde von IBM seit 2013 als Open Source entwickelt und ist seit 2016 Teil der JavaScript Foundation. Der Fokus von Node-Red auf Open Source und die Mitarbeit durch die Community hat zu einer großen Verbreitung geführt, zum Beispiel ist Node Red seit 2015 Bestandteil von Raspbian – der Standardsoftware für den Raspberry PI oder wird auf kommerziellen Systemen (zum Beispiel von Hilscher, Harting, AT&T, Intel eingesetzt.

Knoten für das IIoT

Damit ein industrieller Anwender Node-Red für seine Zwecke einsetzen kann, muss er in der Lage sein, mit verschiedenen Geräten und Systemen der Automatisierungstechnik zu kommunizieren. Dafür stehen über die Node-Red-Community zahlreiche Knoten zur Verfügung:

  • Modbus: Unterstützung für TCP und serielle Verbindungen
  • Siemens S7: auf RFC1006 basierende Kommunikation zu den S7-SPSen von Siemens
  • OPC UA: Kommunikation zu OPC UA-Servern und Bereitstellung von Serverfunktionalität
  • MQTT: Unterstützung des MQTT-Protokolls (V3.1 und V3.1.1)

Diese Knoten stehen auch im Source Code zur Verfügung, so dass Anpassungen und Änderungen schnell selbst realisiert werden könnten.

Einmal in die Cloud und wieder zurück

Besonders einfach kann der Einstieg in Node-RED unter Verwendung einer Cloud-Plattform wie IBM Bluemix gelingen. Nach Registrierung unter http://bluemix.net können die Dienste der Plattform für 30 Tage kostenlos genutzt werden und die meisten Dienste bieten auch eine kostenfreie Stufe im Preisplan an. Unter den sogenannten ‚Boilerplates‘ findet man im Katalog die Node-Red-Starter-Anwendung. Innerhalb weniger Minuten ist eine Instanz angelegt und im Internet verfügbar – es empfiehlt sich allerdings, den zusätzlichen Schritten zur Absicherung des Zugangs zu der Webanwendung zu folgen. Der Floweditor ist Entwicklungsumgebung und gleichzeit Admininistrationsschnittstelle etwa zur Überwachung oder zur Installation neuer Knoten. Er besteht aus drei Hauptbereichen: links findet man die Knoten, in der Mitte den Flow und auf der rechten Seite die Eigenschaften und weitere administrative Funktionen.

‚Hello World‘ mit Node-Red

Nachdem man den Floweditor geöffnet hat, wählt man aus der Liste der Knoten auf der linken Seite den Inject-Knoten (unter Input) aus. Mit diesem Knoten können Nachrichten in den Flow manuell oder zeitgesteuert injiziert werden. Nun wählt man den Debug-Knoten (unter Output) aus und fügt ihn dem Flow hinzu. Dieser Knoten gibt den Inhalt der aktuellen Nachricht im Debug-Fenster auf der rechten Seite aus. Mittels Drag und Drop verbindet man die beiden Knoten. Jede Aktion im Floweditor führt zu einer Änderung des Flows im Browser – diese muss aber noch dem Server bekanntgegeben werden. Durch drücken des Deploy-Knopfes in der rechten oberen Ecke wird das erreicht und damit der aktuelle Flow aktiviert. Wenn man nun auf den Inject-Knopf drückt, sollte im Debug-Fenster ein Zeitstempel ausgegeben werden, der der Anzahl von Millisekunden seit dem 1. Januar 1970 entspricht. Anpassungen und anwendungsspezifische Logik, die nicht von speziellen Knoten abgebildet werden kann, wird in Node-Red mittels Javascript implementiert. Dazu wird der Function-Knoten (unter Function) verwendet. Nachdem man den Function-Knoten zwischen den Inject- und Debug-Knoten eingefügt hat, kann man den Editor-Dialog per doppelten Mausklick öffnen und folgenden Code zur Formatierung des Zeitstempels eingefügen:

// Create a Date object from the payload

var date = new Date(msg.payload);

// Change the payload to be a formatted Date string

msg.payload = date.toString();

// Return the message so it can be sent on return msg;

Mit ‚Done‘ wird der Editor wieder geschlossen und der Flow über Deploy an den Server übergeben. Wenn jetzt der Inject-Knopf erneut gedrückt wird, ist die Nachricht im Debug Fenster wesentlich verständlicher dargestellt.


Weiterführende Links


Das könnte Sie auch interessieren:

Harting und Expleo haben im Rahmen der SPS 2019 in Nürnberg eine Kooperationsvereinbarung geschlossen. Vorstandsvorsitzender Philip Harting und Peter Seidenschwang, Head of Industry bei Expleo Germany, unterzeichneten die Vereinbarung, mit der beide Parteien die langfristige Zusammenarbeit im Bereich datengesteuerter Dienste und IoT-Lösungen für Industriekunden bekräftigen.‣ weiterlesen

Laut einer Accenture-Studie können Unternehmen, die in die Skalierung von Technologieinnovationen investieren, mehr als doppelt so hohe Umsatzwachstumsraten erzielen. Dies betrifft in der Studie lediglich zehn Prozent der befragten Unternehmen.‣ weiterlesen

Mit steigender Auftragszahl stieß das ERP-System der ITV GmbH an seine Grenzen. Viele Prozesse erforderten zudem noch viel Handarbeit, etwa beim Einpflegen von Daten. Diese dokumentenbasierten Prozesse sollten mit einer Branchenlösung künftig digital ablaufen.‣ weiterlesen

Digitalgestützte Assistenzsysteme gewinnen in Fabriken an Bedeutung. Gerade komplexe Fertigungsaufgaben lassen sich so schnell, mit weniger Fehlern und von geringer qualifizierten Mitarbeitern ausüben. Für eine Studie haben 144 Produktionsverantwortliche darüber gesprochen, wie es in ihren Werken um die digitale Assistenz bestellt ist.‣ weiterlesen

Laut aktueller Zahlen des ZEW — Leibniz-Zentrum für Europäische Wirtschaftsforschung, blickt die Deutsche Wirtschaft zuversichtlicher in die Zukunft, als noch Ende des vergangenen Jahres. Im Vergleich zum Dezember stieg der Wert der Konjunkturerwartungen um 16 Punkte.‣ weiterlesen

Um Mobilität in Zeiten von Verstädterung, Ressourcenknappheit und Klimawandel zukunftsfest zu machen, bündeln die Universität Stuttgart und das Karlsruher Institut für Technologie (KIT) ihre Forschungskompetenzen im Innovationscampus ‘Mobilität der Zukunft‘ (ICM).‣ weiterlesen

Viele Unternehmen haben das Thema Kundenbeziehungsmanagement auf ihrer digitalen Agenda. Und es geht voran, gerade im Maschinen- und Anlagenbau. Eine aktuelle Umfrage zeigt aber auch, woran es auf dem Weg zur 360°-Kundensicht noch hakt.‣ weiterlesen

Mixaco stellt Industriemischer für Chemikalien, Farben und Kunststoffe her. Jetzt hat die Firma ihr Angebot um eine IoT-Lösung erweitert, mit der Anlagenbetreiber die Leistung ihrer Maschinen online überwachen und sie vorausschauend warten können. In Verbindung mit anderen Bausteinen der IoT-Plattform sind aber noch viel mehr Anwendungen möglich.‣ weiterlesen

Im 23. Global CEO Survey von PWC rechnet mehr als die Hälfte der 1.581 befragten CEOs mit einem Rückgang des Weltwirtschaftswachstums. Auf lange Sicht zeigen sich die Befragten jedoch optimistischer.‣ weiterlesen

Weit mehr als 200 Aussteller auf werden auf der All About Automation im am 4. und 5. März am Bodensee erwartet. Bei der aktuellen Auflage sind die Themen Robotik und MRK zunehmend stark vertreten.‣ weiterlesen

Trendthemen wie künstliche Intelligenz oder Nachhaltigkeit haben Auswirkungen auf die gesamte Supply Chain. Auf der diesjährigen Logimat, die vom 10. bis zum 12. März in Stuttgart stattfindet, zeigen mehr als 1.650 Aussteller, wo die Reise in der Intralogistik in den nächsten Jahren hingehen könnte.‣ weiterlesen

Anzeige
Anzeige
Anzeige