OPC UA (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 (Open Platform Communications Unified Architecture) 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 #

Software #

  • Node-RED

  • OPC UA Client

  • CODESYS

  • OPC UA Server

Übersicht #

  • Einrichtung des RevPi Connect 4 und der Erweiterungsmodule (RevPi DIO, RevPi AIO)

  • Installation des OPC UA Nodes

  • Einrichtung des OPC-UA-Servers in CODESYS und Definition von Variablen

  • OPC UA Client (UA-Expert)

  • Node-RED-Programm

Schritt 1: Einrichtung des RevPi Connect 4 und der Erweiterungsmodule (RevPi DIO, RevPi AIO) #

Hardware #

Folge diesen Schritten, um dein System zu konfigurieren. Detaillierte Anweisungen findest du in der Getting Started Anleitung.

  • Schalte den RevPi Connect 4 ein

    ▷ Schließe den RevPi Connect 4 an eine Stromquelle an.

    ▷ Stelle sicher, dass er mit deinem lokalen Netzwerk verbunden ist, um Zugriff zu ermöglichen.

  • Schalte das RevPi DIO und RevPi AIO ein

    ▷ Schalte das RevPi DIO ein.

    ▷ Schalte das RevPi AIO ein.

  • Verbindungen überprüfen

    ▷ Stelle sicher, dass der Induktive Näherungsschalter ordnungsgemäß mit dem RevPi DIO verbunden ist.

    ▷ Vergewissere dich, dass das RevPi DIO und das RevPi AIO sicher über die PiBridge Schnittstelle mit dem RevPi Connect 4 verbunden sind.

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

  • Zugriff auf den RevPi

    ▷ Öffne einen Webbrowser auf einem PC, der mit demselben Netzwerk verbunden ist.

    ▷ Greife auf den RevPi über die IP-Adresse zu.

(../img/revpi-tutorial-Node-red.png)

Note

Für Netzwerkprobleme oder um die IP-Adresse deines RevPi zu ermitteln, konsultiere bitte die Getting Started Anleitung.

Software #

Um ein kompatibles System mit geeigneter Software sicherzustellen, beachte bitte die CODESYS-Systemvoraussetzungen.

Schritt 2: Installation des OPC UA Nodes #

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.

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

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

Note

Wie man ein Node-Paket manuell installiert, kannst du auch folgendermaßen tun hier.

Schritt 3: Einrichtung des OPC-UA Servers in CODESYS und Definition von Variablen #

▷ Öffne den Installer unter "Tools/CODESYS Installer".

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

▷ Klicke im CODESYS Installer auf "Installationsdatei" (EN) oder "Datei installieren" (DE).

Webstatus login

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

▷ Um CODESYS Control Linux ARM 64 Bit auf RevPi Geräten mit dem Bullseye 64-Bit-Image zu installieren, verwende das folgende Menü im CODESYS-Entwicklungssystem: Tools > CODESYS Installer. Ein Fenster wird geöffnet. Suche nach CODESYS Control for Linux ARM64 SL und klicke dann auf Installieren.

Webstatus login

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

Webstatus login

Verwende dann das folgende Menü im CODESYS-Entwicklungssystem: Tools > Update Linux ARM 64, um die Installation auf den Controller (hier dein RevPi 4) zu übertragen.

Webstatus login

Schritt 4: Erstellen eines CODESYS-Projekts #

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

Webstatus login

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

Webstatus login

▷ Klicke mit der rechten Maustaste auf "Gerät" im Projekt-Tab.

▷ Klicke auf "Gerät hinzufügen" (EN) oder "Gerät anhängen" (DE).

Webstatus login

Im folgenden Fenster finde alle RevPi Basismodul.

▷ Klicke auf RevPi Connect 4.

▷ Klicke auf "Gerät hinzufügen" oder "Gerät anhängen".

Webstatus login

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

▷ Klicke mit der rechten Maustaste auf das RevPi Basismodul.

▷ Klicke auf "Gerät hinzufügen".

Webstatus login

Um ein Erweiterungsmodul hinzuzufügen, wähle die Geräteschnittstelle piBridgeLeft oder piBridgeRight.

▷ Klicke auf "Gerät hinzufügen".

Webstatus login

▷ Wähle das angehängte Gerät aus.

▷ Klicke auf "Gerät hinzufügen".

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

Die Konfiguration der Pins auf RevPi DIO:

Webstatus login

Die Konfiguration des RevPi AIO für den PT-1000 Temperatursensor. Es verwendet den RTD-Kanal 1 (RTD1). Webstatus login

Webstatus login

Schritt 5: Erstellen des CODESYS-Programms #

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: Einrichtung des OPCUA Servers in CODESYS #

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

Wir streben auch eine sichere Datenübertragung über OPC UA an. Dafür benötigen wir eine Möglichkeit, den Datenstrom zu verschlüsseln, und dies geschieht jetzt über den sogenannten "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. Dafür klicke auf "Geräte" und sehen die verfügbaren Informationen zum Gerät.

Webstatus login

In diesem Fall sind die folgenden Informationen verfügbar:

Webstatus login Es ist wichtig zu beachten, dass die Verschlüsselung des OPC UA-Dienstes erforderlich ist. Zuerst muss 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: Einrichtung des OPC UA Clients (UAExpert) #

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, indem wir mit der rechten Maustaste auf Server > Hinzufügen > Benutzerdefinierte Entdeckung > Doppelklicken, um Server hinzuzufügen…​ klicken. Ein Popup öffnet sich, in dem du die IP-Adresse des Systems einstellen musst. 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 nun eine Kommunikationsoption (z. B. "None-None(uatcp-uasc-uabinary)") und klicke dann auf "Ok", um fortzufahren.

Webstatus login

Um eine Verbindung zum Server herzustellen, klicke mit der rechten Maustaste auf den Server und wählen dann "Verbinden" 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 klicke dann auf "Ok".

Webstatus login

Schritt 9: Erstellen eines Node-RED Flows #

Unten siehst du das 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

Im Node "`OpcUa Item muss das "`Item angegeben werden. Das Item besteht aus der "NodeId der zuzugreifenden Variable.

Webstatus login

Das "Item" kann im UaExpert Client abgerufen werden.

Webstatus login Im Beispiel haben wir:

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 Typ muss der Typ der Variable definiert werden:

Input: Boolean

A_OUT: Int16