OPC-UA
OPC-UA (Open Platform Communications Unified Architecture) ist ein standardisiertes Kommunikationsprotokoll für den sicheren und zuverlässigen Datenaustausch zwischen industriellen Geräten und Systemen. Es ermöglicht sowohl den Zugriff auf aktuelle Prozessdaten als auch auf strukturierte Informationen in Form eines hierarchischen Informationsmodells.
In der VISIONWEB-Plattform wird OPC-UA über zwei getrennte Komponenten eingebunden:
einen Client, der die Verbindung zu einem OPC-UA-Server herstellt und Knoten, man Daten schreiben, sowie auch auslesen kann,
und eine Subscription, die über den verbundenen Client auf definierte Datenpunkte (Nodes) zyklisch zugreift und ein Event auslöst, sobald diese Daten sich ändern.
Eine Subscription kann nur verwendet werden, wenn zuvor ein zugehöriger Client angelegt wurde. Beide werden über den Parameter „Connection Name“ miteinander verknüpft.
Verbindungsparameter
Parameter | Type | Einheit | Erklärung | Beispiel | Subscription | Client |
|---|---|---|---|---|---|---|
Connection Name | String | Referenz auf die konfigurierte Client-Komponente, über die die Verbindung läuft. Ohne Client kann keine Subscription aufgebaut werden. | evoviu-cam1 |
|
| |
OPC-UA Endpoint | String | Gibt die Verbindungsadresse (URL) des OPC-UA-Servers an, mit dem sich der Client verbinden soll. | opc.tcp://opc.myfactory:4840 |
|
| |
Timeout | Int32 | [ms] | Legt die maximale Dauer fest, wie lange auf eine Serverantwort oder auf den Abschluss einer bestimmten Aktion gewartet wird. | 5000 |
| |
Security Enabled | Boolean | Dieses Attribut kann verwendet werden, um die Vertrauenswürdigkeit des Endpoints zu überprüfen. |
| |||
Auto Create Certificate | Boolean | Legt fest, ob ein Zertifikat automatisch erstellt werden soll oder nicht. |
| |||
Variable Name | String | Gibt die NodeId der gewünschten OPC-UA-Variable an, auf die zugegriffen werden soll. | ns=2;i=1234 |
| ||
Cycle Time | Int32 | [ms] | Gibt das Abfrageintervall in Millisekunden an, in dem die Subscription die Werte der angegebenen Nodes vom OPC-UA-Server aktualisiert. Der Event wird anschließend nur ausgelöst, wenn sich die Daten ändern. | 250 |
|
Workflow Setup
Unterschied zwischen OPC-UA Client und OPC-UA Subscription
Der OPC-UA Client stellt die Verbindung zu einem OPC-UA-Server her und ermöglicht den Zugriff auf dessen Datenpunkte (Nodes). Über eine OPC-UA Subscription können hingegen Werte dieser Nodes automatisch bei Änderungen vom Server empfangen werden, ohne dass sie aktiv abgefragt werden müssen. Dennoch wird die automatisch Abfrage über eine vordefinierte Cycle-Time eingestellt.
In der VISIONWEB-Plattform lassen sich beliebig viele Clients und Subscriptions einrichten.
Mehrere Subscriptions können dabei über eine gemeinsame Client-Anbindung betrieben werden, indem sie über einen eindeutigen Connection-Name mit dem jeweiligen Client verknüpft werden.
Eine Subscription kann erst erstellt werden, nachdem ein Client angelegt wurde. Die Client-Komponente übernimmt dabei den Aufbau der Verbindung zum OPC-UA-Server.
So kann beispielsweise eine Messwertänderung (z. B. ein Produktionsparameter) über eine Subscription erfasst und zur Auslösung eines Flows verwendet werden, während über denselben Client weitere Subscriptions andere Werte vom selben Server überwachen.
Parallel dazu ist es möglich, über einen weiteren Client Daten von einem anderen OPC-UA-Server abzurufen, etwa Status- oder Diagnosedaten.
Anlegen des OPC-UA Clients - Schritt für Schritt
Gehen Sie in Workflows unter Components auf ➕ .

Suchen Sie nach “OPC-UA Client” und wählen Sie den Eintrag aus um die Komponente hinzuzufügen.
Es erscheint eine neue Komponente mit dem Namen “OPC-UA Client”. Diesen Namen können Sie jederzeit anpassen.
Geben Sie die Verbindungsparameter ein.
Die Mindestvoraussetzung sind der Client Name zur späteren Verknüpfung mit einer Subscription und die Url. Alle weiteren Felder sind optional und können wahlweise je nach Authentifizierungsmethode genutzt werden.

Wählen Sie den Tab Event Graph aus und öffnen Sie per Rechtsklick das Context-Menü.
Suchen Sie nach dem Knoten “Write Value” unter OPC-UA und fügen Sie den Knoten zum Senden von Daten in Ihrem Workflow ein.

Wählen Sie ebenfalls die Komponente “Get OPC-UA Client” aus und verbinden Sie diese mit dem “Write Value”-Knoten. Fügen Sie den gewünschten “Variable Name” - also den Node der OPC-UA Verbindung, z.B.
ns=2;i=1234, ein.

Wählen Sie die Variable oder die Datenstruktur aus, die Sie senden möchten, und fügen Sie diese im Wildcard-Feld Value ein.

Wenn gewünscht, können Sie sich das Ergebnis der Übertragung als booleschen Wert ausgeben lassen, um zu prüfen, ob die Übertragung erfolgreich war. Auch die Message mit Hinweisen kann in einer Variable gespeichert werden, bzw. wie hier im Beispiel im Tab Output über den Knoten “Print” ausgegeben werden.

Herzlichen Glückwunsch! Sie können nun Ihre Daten an den gewünschten OPC-UA-Server senden.
Wenn Sie umgekehrt Daten während eines Flows auslesen wollen, dann können Sie dazu den “Read Value” Knoten der OPC-UA-Verbindung verwenden.

Herzlichen Glückwunsch! Sie können nun Daten von einen gewünschten OPC-UA-Server-Node auslesen.
Anlegen einer OPC-UA Subscription - Schritt für Schritt
Bevor Sie diesen Schritt durchführen, muss zwingend ein OPC-UA-Client (siehe oben) angelegt sein, und es muss ein Connection-Name (in unserem Beispiel „opc-evoviu-1“) zur Verlinkung in der Komponente des Clients definiert sein. Dieser Name kann frei gewählt werden.
Gehen Sie in Workflows unter Components auf ➕ .

Suchen Sie nach “OPC-UA Subscription” und wählen Sie den Eintrag aus um die Komponente hinzuzufügen.
Es erscheint eine neue Komponente mit dem Namen „OPC-UA Subscription“. Diesen Namen können Sie jederzeit anpassen.
Geben Sie die Verbindungsparameter ein.
Im vorliegenden Beispiel wird alle 150 ms geprüft, ob sich der Wert der Node ns=2;i=1234 geändert hat. Sobald eine Änderung erkannt wird, wird der Flow ausgelöst.
Bitte beachten Sie, dass die Durchführung des Flows erst nach der Ausführung des vorhergehenden Flows erfolgt. Dadurch kann es zu einer zeitlichen Verzögerung kommen.

Wählen Sie den Tab Event Graph aus und öffnen Sie per Rechtsklick das Context-Menü.
Suchen Sie unter Events nach dem Knoten „Data Changed (OPC- UA Subscription)“ und wählen Sie diesen aus, um bei einer Aktualisierung des Nodes auf dem Server einen Flow auszulösen.

Holen Sie sich den Datensatz über den Wildcard Parameter direkt in die gewünschte Variable.
Bitte beachten Sie: Der Server gibt vor, welcher Datentyp aus den jeweiligen Knoten stammt.

Sollten Sie mehrere Datentypen oder Nodes im OPC-UA-Server haben, die auf Aktualisierung geprüft werden sollen, können Sie mehrere Subscriptions anlegen. Diese Subscriptions können unabhängig voneinander jeweils einen eigenen Flow auslösen (siehe Beispiel 1) oder parallel nacheinander arbeiten (siehe Beispiel 2), je nach gewünschtem Verhalten.

Anlage der Komponenten bei mehreren Subscriptions

Beispiel 1

Beispiel 2
Herzlichen Glückwunsch! Sie können nun Daten von einem gewünschten OPC-UA-Server über eine Subscription abrufen.