OPC UA (Open Platform Communications Unified Architecture) ist eine Weiterentwicklung der OPC-Spezifikationen, die nicht nur den Transport von Daten aus Maschinen und Systemen ermöglicht, sondern auch die maschinenlesbare semantische Beschreibung dieser Daten. Es handelt sich um einen plattformunabhängigen Standard auf Basis von TCP, der Mitgliedern der OPC Foundation zur Verfügung steht. Die OPC-UA-Spezifikation umfasst verschiedene Profile, um einzelne Funktionen zu skalieren.

Dieser Artikel zeigt, wie Node-RED für die Kommunikation mit anderen Systemen unter Verwendung des OPC UA-Protokolls genutzt werden kann. Der OPC UA-Server läuft auf dem Controller, in diesem Fall auf einem CODESYS-basierten Controller auf einem RevPi Connect 4.

Voraussetzungen #

Hardware

RevPi Connect 4
RevPi DIO - digitales I/O-Modul
RevPi AIO - analoges I/O-Modul
Induktiver Näherungsschalter (3 Draht, PNP)
✓ PT-1000 Temperatursensor (4 Draht)
✓ Verbindungskabel (zum Verdrahten des RevPi DIO und der LED).

Software

Node-RED
✓ OPC UA Client
CODESYS
✓ OPC UA Server

Note

Ab RevPi Bookworm (08/2025) muss zusätzlich die Firewall des RevPi für die Standard-Ports des OPC UA Server freigegeben werden:

▷ Füge den Service opcua-server-default zu den Firewall-Einstellungen in Cockpit hinzu, siehe Firewall.

Schritt 1: System einrichten #

Folge diesen Schritten, um dein System aus RevPi Connect 4 und den Erweiterungsmodulen RevPi DIO und RevPi AIO zu konfigurieren. Detaillierte Anleitungen findest du im Getting Started.

▷ Schließe das RevPi DIO und das RevPi AIO an den RevPi Connect 4 an.
Stelle sicher, dass die Erweiterungsmodule sicher über die PiBridge Schnittstelle mit dem RevPi Connect 4 verbunden sind.

▷ Schließe den induktiven Näherungsschalter an einen digitalen Eingang des RevPi DIO an.

▷ Schließe den PT-1000 an den RTD Kanal 1 des RevPi AIO an.

▷ Schließe den RevPi Connect 4 an die Spannungsversorgung an.

▷ Stelle eine Netzwerkverbindung her.

Schritt 2: OPC UA Nodes installieren #

Die Standardinstallation von Node-RED enthält grundlegende Nodes, die am häufigsten verwendet werden. Es gibt jedoch eine umfangreiche Bibliothek zusätzlicher Nodes, die du verwenden kannst. Um das OPC-UA-Protokoll zu verwenden, musst du die bereitgestellten Nodes node-red-contrib-opcua installieren. Diese Installation kann entweder über die Befehlszeile mit dem Node Package Manager (npm) oder einfach über ein Terminal erfolgen.

▷ Starte Node-RED.

▷ Öffne das Menü und wähle Palette verwalten.

▷ Suche dann nach node-red-contrib-opcua, um mit der Installation fortzufahren.

Note

Du kannst ein Node-Paket auch manuell installieren.

Schritt 3: OPC UA Server einrichten #

▷ Öffne CODESYS.

▷ Öffne den Installer unter Tools  CODESYS Installer.

▷ Schließe vor dem Start des Installers das Hauptfenster deiner CODESYS-Anwendung.

▷ Wähle im CODESYS Installer Install File.

Webstatus login

▷ Folge den Installationsschritten, um die Pakete von deinem PC auf deine CODESYS-Anwendung zu installieren.

▷ Um CODESYS Control Linux ARM 64 Bit zu installieren, wähle Tools  CODESYS Installer.

❯ Das Fenster CODESYS Installer öffnet sich.

▷ Suche nach CODESYS Control for Linux ARM64 SL und wähle Installieren.

Webstatus login

❯ Die beiden Pakete sind nun als Installiert im CODESYS-Installer aufgeführt und somit auf deiner Anwendung installiert.

Webstatus login

▷ Wähle Tools  Update Linux ARM 64, um die Installation auf den Controller (hier den RevPi Connect 4) zu übertragen.

Webstatus login

Schritt 4: CODESYS-Projekt erstellen #

▷ Erstelle in CODESYS ein neues Standardprojekt mit CODESYS Control for Linux ARM64 SL.

Webstatus login

▷ Wähle CODESYS Control for Linux ARM64 SL aus.

Webstatus login

▷ Wähle das Kontextmenü von Device im Gerätebaum.

▷ Wähle Add Device.

Webstatus login

❯ Ein Fenster mit einer Liste aller RevPi Basismodule öffnet sich.

▷ Wähle das Basismodul RevPi Connect 4.

▷ Bestätige mit Add Device.

Webstatus login

Optional kannst du zusätzliche RevPi Erweiterungsmodule anhängen.

▷ Wähle das Kontextmenü des RevPi Basismoduls.

▷ Wähle Add Device.

Webstatus login

▷ Wähle die Geräteschnittstelle piBridgeLeft oder piBridgeRight, um ein Erweiterungsmodul hinzuzufügen.

▷ Wähle Add Device.

Webstatus login

▷ Wähle das angehängte Erweiterungsmodul aus.

▷ Bestätige mit Add Device.

Webstatus login

❯ Hier werden die verfügbaren Erweiterungsmodule angezeigt, die an die linke oder rechte Seite des RevPi Connect 4 angeschlossen werden können. Für dieses Beispiel:

  • RevPi DIO - digitales I/O-Modul

  • RevPi AIO - analoges I/O-Modul

Webstatus login

▷ Konfiguriere die Pins auf RevPi DIO:

Webstatus login

▷ Konfiguriere den RevPi AIO für den PT-1000 Temperatursensor.
Es verwendet den RTD-Kanal 1 (RTD1).

Webstatus login

Webstatus login

Schritt 5: CODESYS-Programm erstellen #

Im Programm werden zwei Variablen definiert. Die Variable A_OUT greift auf den Kanal des RTD_Kanal 1 zu und gibt den Temperaturwert zurück. Die Variable Input greift auf den Eingang 2 des digitalen Eingangs des RevPi DIO zu, an dem die Signalleitung des induktiven Sensors angeschlossen ist.

Webstatus login

Schritt 6: OPCUA Server einrichten #

Die OPC UA Server-Funktion ist nativ in der CODESYS-Entwicklungsumgebung enthalten. Im Programm OPCUA-TUT veröffentlichen wir den Status eines Eingangs und den Wert eines Temperatursensors.

Wir haben das Symbolkonfigurationsobjekt zum Projekt hinzugefügt und die OPC UA-Eigenschaften aktiviert.

Webstatus login

Schritt 7: Variablen veröffentlichen #

Im Symbolkonfigurations-Editor finden wir eine Liste aller im Programm vorhandenen Variablen. Wir aktivieren nur die, die wir veröffentlichen möchten: den BOOL-Typ Input, der den Status des digitalen Eingangs zurückgibt, und die Temperatur, dargestellt durch A_OUT vom Typ INT, die den Temperaturwert zurückgibt.

Für jede Variable können wir die Berechtigungen (Lesen, Schreiben, Lesen/Schreiben) ändern, indem wir auf die Spalte der Zugriffsrechte klicken. Nachdem das Programm auf das Ziel geladen und ausgeführt wurde, ist es möglich, auf die veröffentlichten Variablen mit einem OPC UA Client zuzugreifen.

Webstatus login

Nun besteht auch die Möglichkeit, die Datenübertragung zu sichern, und dies kann auf zwei Weisen erfolgen. Erstens durch Benutzer-Authentifizierung, indem eine Kommunikationsrichtlinie geändert wird.

Zweitens kann festgelegt werden, ob ein anonymer Login erlaubt ist, was bedeutet, dass du auf die OPC-UA-Server zugreifen kannst, ohne Benutzerverwaltung, oder nicht. In diesem Fall haben wir es erlaubt.

Webstatus login

Für eine sichere Datenübertragung über OPC UA benötigen wir eine Möglichkeit, den Datenstrom zu verschlüsseln. Das geschieht über den Security Manager. Dieser prüft, ob für das Gerät ein Zertifikat vorhanden ist, um die Datenübertragung über X.509 zu verschlüsseln.

▷ Wähle Devices.

❯ Die verfügbaren Informationen zum Gerät werden angezeigt.

Webstatus login

In diesem Fall sind die folgenden Informationen verfügbar:

Webstatus login

Note

Es ist eine Verschlüsselung des OPC UA-Dienstes erforderlich. Es muss zuerst geprüft werden, ob ein Zertifikat gespeichert ist. Falls nicht, wie im Bild oben gezeigt, muss eines erzeugt werden.

Webstatus login

Der OPC-UA Server hat jetzt ein gültiges Zertifikat:

Webstatus login

Schritt 8: OPC UA Client einrichten #

UaExpert® ist ein plattformübergreifender OPC UA Test-Client. Das Programm kann zusammen mit vielen anderen Programmen und Dokumentationen kostenlos von der Website der Unified Automation-Firma heruntergeladen werden.

Um eine Verbindung zu unserem System herzustellen und mit den veröffentlichten Variablen zu interagieren, können wir einen Server definieren, mit dem wir verbinden möchten.

▷ Wähle Servers  Add  Custom Discovery  Double click to Add Server….

❯ Ein Popup öffnet sich.

▷ Stelle die IP-Adresse des Systems ein.

▷ Bestätige mit Ok, um fortzufahren.

Webstatus login

❯ Das Programm stellt eine Verbindung zum Server her und zeigt ihn in der Liste an. Ein Eintrag erscheint ähnlich diesem: opc.tcp://192.xxx.xxx.xxx:, wobei opc.tcp das Protokoll über TCP angibt. Wenn du das Menü opc.tcp://192.xxx.xxx.xxx: erweiterst, wird eine automatische Erkennung des Servers mit dem richtigen Namen in dieser Form erscheinen: OPCUAServer@RevPi99920(opc.tcp://192.168.1.214).

▷ Wähle eine Kommunikationsoption, z. B. None-None(uatcp-uasc-uabinary).

▷ Wähle Ok, um fortzufahren.

Webstatus login

▷ Um eine Verbindung zum Server herzustellen, wähle das Kontextmenü des Server und wähle Connect im Fenster, das erscheint.
Sobald die Verbindung hergestellt ist, kannst du die gewünschte Variable suchen und mit ihr interagieren.

▷ Wähle eine Kommunikationsmethode, z. B. None-None(uatcp-uasc-uabinary), und wähle Ok.

Webstatus login

Schritt 9: Node-RED Flow erstellen #

Node-RED-Programm mit dem zugehörigen Dashboard, das mit dem OPCUA-TUT-Programm verbindet:

Webstatus login

Die Kommunikation mit dem CODESYS-OPC-UA-Server erfolgt über den OpcUa-Client-Node, bei dem der Endpunkt als Adresse und Port des OPC-UA-Servers definiert wird (im Beispiel: opc.tcp://192.168.1.214:4840). Für Leseoperationen (Variablen Input und A_OUT) ist die Aktion READ definiert.

Webstatus login

▷ Gib im Node OpcUa Item das Item an. Es besteht aus der NodeId der zuzugreifenden Variable.

Webstatus login

Das Item kann im UaExpert Client abgerufen werden.

Webstatus login

Beispiel:

Input: ns=4;s=|var|CODESYS Control for Linux ARM64 SL.Application.PLC_PRG.Input

A_OUT: ns=4;s=|var|CODESYS Control for Linux ARM64 SL.Application.PLC_PRG.A_OUT

Im Feld Type muss der Typ der Variable definiert werden:

Input: Boolean

A_OUT: Int16

Weitere Ressourcen #