Zum Hauptinhalt springen

OPC UA mit CODESYS und Node-RED

Einleitung

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 Revolution-Pi 4.

Voraussetzungen

Hardware

  • RevPi Connect 4

  • RevPi DIO Modul

  • RevPi AIO Modul

  • Induktiver Näherungsschalter (3 Draht, PNP)

  • PT-1000 Temperatursensor (4 Draht)

  • Verbindungskabel (zum Verdrahten des DIO und der LED).

Software

  • Node-red
  • OPC UA Client
  • CODESYS
  • OPC UA Server

Übersicht

  • Einrichtung des RevPi4 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 RevPi4 und der Erweiterungsmodule (RevPi DIO, RevPi AIO)

Hardware-Einrichtung

Folgen Sie diesen Schritten, um Ihr System zu konfigurieren. Detaillierte Anweisungen finden Sie in der Getting Started Anleitung.

  • Schalten Sie den RevPi Connect 4 ein

    ▷ Schließen Sie den RevPi Connect 4 an eine Stromquelle an.

    ▷ Stellen Sie sicher, dass er mit Ihrem lokalen Netzwerk verbunden ist, um Zugriff zu ermöglichen.

  • Schalten Sie das RevPi DIO und RevPi AIO Modul ein

    ▷ Schalten Sie das RevPi DIO Modul ein.

    ▷ Schalten Sie das RevPi AIO Modul ein.

  • Verbindungen überprüfen

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

    ▷ Vergewissern Sie sich, dass das RevPi DIO und RevPi AIO Modul sicher über die PiBridge-Schnittstelle mit dem RevPi Connect 4 verbunden sind.

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

  • Zugriff auf die RevPi-Oberfläche

    ▷ Öffnen Sie einen Webbrowser auf einem Gerät, das mit demselben Netzwerk verbunden ist.

    ▷ Greifen Sie auf das RevPi-System über die IP-Adresse zu.

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

Hinweis: Für Netzwerkprobleme oder um die IP-Adresse Ihres RevPi zu ermitteln, konsultieren Sie bitte die Getting Started Anleitung.

Software-Einrichtung:

Hinweis: Um ein kompatibles System mit geeigneter Software sicherzustellen, beachten Sie bitte die folgenden Links:

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 Sie verwenden können. Um das OPC-UA-Protokoll zu verwenden, müssen Sie 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.

▷ Öffnen Sie das Menü und wählen Sie "Palette verwalten".

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

Hinweis: Wie man ein Node-Paket manuell installiert, können Sie auch folgendermaßen tun hier.

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

▷ Öffnen Sie den Installer unter "Tools/CODESYS Installer".

▷ Schließen Sie vor dem Start des Installers das Hauptfenster Ihrer CODESYS-Anwendung.

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

Webstatus login

▷ Folgen Sie den Installationsschritten, um die Pakete von Ihrem PC auf Ihre CODESYS-Anwendung zu installieren.

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

Webstatus login

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

Webstatus login

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

Webstatus login

Schritt 4: Erstellen eines CODESYS-Projekts

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

Webstatus login

▷ Wählen Sie CODESYS Control for Linux ARM64 SL aus

Webstatus login

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

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

Webstatus login

Im folgenden Fenster finden Sie alle RevPi-Basemodule.

▷ Klicken Sie auf das gewünschte Basismodul (in diesem Beispiel RevPi Connect).

▷ Klicken Sie auf "Gerät hinzufügen" oder "Gerät anhängen"

Webstatus login

Optional können Sie zusätzliche KUNBUS-Untermodule verwenden.

▷ Klicken Sie mit der rechten Maustaste auf das zuvor hinzugefügte Basismodul (in diesem Beispiel auf „Connect“).

▷ Klicken Sie auf "Gerät hinzufügen".

Webstatus login

Um ein Untermodule anzubringen, wählen Sie die Geräteschnittstelle piBridgeLeft oder piBridgeRight. ▷ Klicken Sie auf "Gerät hinzufügen".

Webstatus login

▷ Wählen Sie das angehängte Gerät aus.

▷ Klicken Sie auf "Gerät hinzufügen".

Webstatus login

Hier werden die verfügbaren Module angezeigt, die an die linke oder rechte Seite des RevPi Connect 4 angeschlossen werden können. Für unsere Demo: – DIO – Digital Input-Output Modul

– AIO – Analog Input-Output Modul

Webstatus login

Die Konfiguration der Pins auf 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 Sie auf die OPC-UA-Server zugreifen können, 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 klicken Sie 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](./img/revpi-tutorial-OPC UA-CODESYS-Node-RED-21.png) 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 Sie die IP-Adresse des Systems einstellen müssen. Bestätigen Sie 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 Sie das Menü "opc.tcp://192.xxx.xxx.xxx:" erweitern, wird eine automatische Erkennung des Servers mit dem richtigen Namen in dieser Form erscheinen: "OPCUAServer@RevPi99920(opc.tcp://192.168.1.214)".

Wählen Sie nun eine Kommunikationsoption (z. B. "None-None(uatcp-uasc-uabinary)") und klicken Sie dann auf "Ok", um fortzufahren.

Webstatus login

Um eine Verbindung zum Server herzustellen, klicken Sie mit der rechten Maustaste auf den Server und wählen dann "Verbinden" im Fenster, das erscheint. Sobald die Verbindung hergestellt ist, können Sie die gewünschte Variable suchen und mit ihr interagieren. Wählen Sie eine Kommunikationsmethode (z. B. None-None(uatcp-uasc-uabinary)) und klicken Sie dann auf "Ok".

Webstatus login

Schritt 9: Erstellen eines Node-RED Flows

Unten sehen Sie 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