Quick Start (TwinCAT 2)

Das folgende Kapitel ermöglicht einen Schnelleinstieg in den TwinCAT OPC UA Client. In dieser Anleitung wird das SPS-Beispiel verwendet, um eine Verbindung zu einem OPC UA Server aufzubauen und eine Variable auszulesen. Als OPC UA Server kann ein beliebiger Server verwendet werden, z.B. der TwinCAT OPC UA Sample Server, welcher als ausführbare Datei auch auf einem TwinCAT 2 System gestartet werden kann. Alternativ können Sie auch den .NET Standard Sample Server der OPC Foundation verwenden, welcher aus dem GitHub Repository der OPC Foundation bezogen werden kann.

Das folgende Beispiel orientiert sich an dem TwinCAT OPC UA Sample Server. Um die einzelnen Schritte nachzuvollziehen, muss der Server nicht zwangsläufig gestartet werden. Ziel dieses Schnelleinstiegs soll sein, dass Sie mit dem SPS-Beispiel vertraut werden und lernen, welche Stellen des Samples Sie auf Ihre Betriebsumgebung anpassen müssen.

Im Foglenden werden die Handlungsschritte ihrer Reihenfolge nach genauer beschrieben:

Quick Start (TwinCAT 2) 1:

TwinCAT OPC UA I/O Client

Der TwinCAT OPC UA I/O Client steht nur unter TwinCAT 3 zur Verfügung. Unter TwinCAT 2 ermöglichen wir die Kommunikation ausschliesslich über die SPS-Bibliothek Tc2_PLCopen_OpcUa. Dieser Artikel ist entsprechend für die Verwendung dieser Bibliothek geschrieben worden.

Adressraum des Sample OPC UA Servers

Nach dem Starten des Servers enthält dessen Adressraum einige Nodes, welche von einem Client ausgelesen werden können. Ein OPC UA Client benötigt für den Verbindungsaufbau die folgenden Informationen:

In diese Beispiel ist der Server unter der folgenden Server URL und dem Endpunkt „None/None“ erreichbar. Als IdentityToken wird „Anonymous“ verwendet. Die folgenden Screenshots wurden auf Basis der Software „UA Expert“ erstellt.

Quick Start (TwinCAT 2) 2:

Nach dem Verbindungsaufbau stellt sich der Adressraum von dem hier verwendeten Server wie folgt dar:

Quick Start (TwinCAT 2) 3:

Identifizieren der auszulesenden OPC UA Node

Zum Auslesen einer Node benötigen Sie die konkreten Adressinformationen, welche Sie in Form der sogenannten „Attribute“ vorfinden. Die folgenden Attribute werden für das Auslesen einer Node benötigt:

In diesem Beispiel wollen wir die Node „MyInt16“ auslesen. Die oben genannten Attribute sehen hierbei wie folgt aus:

Quick Start (TwinCAT 2) 4:

Durch das PLCopen Mapping ist vorgegeben, dass eine OPC UA Node vom Datentyp „Int16“ auf den SPS-Datentyp „INT“ gemapped werden muss. Dies müssen wir im folgenden Schritt berücksichtigen.

Sie können zur Kommunikation durchaus den NamespaceIndex verwenden. Best Practice ist jedoch die Verwendung des zugehörigen NamespaceName, da sich der NamespaceIndex dynamisch ändern kann. Der NamespaceName ist hingegen statisch und ermöglicht zur Laufzeit eine Auflsung in den NamespaceIndex. Sie finden den NamespaceName unterhalb des Objekts „Server“ und dort im sogenannten „NamespaceArray“. Der NamespaceName ist dann der x-te Eintrag in dem Array, also in diesem Fall der zweite Eintrag.

Quick Start (TwinCAT 2) 5:

Anpassen des SPS-Beispiels für den TwinCAT OPC UA Client

Öffnen Sie das SPS-Beispiel im TwinCAT PLC Control und öffnen Sie darin das Programm PRG_Read_INT. In diesem Programm finden Sie bereits eine vorgefertigte State Machine, welche die Funktionsbausteine aus der Bibliothek Tc2_PLCopen_OpcUa verwendet, um eine Verbindung mit einem OPC UA Server aufzubauen und eine Node zu lesen.

Quick Start (TwinCAT 2) 6:

Verbindungsaufbau

Die folgenden Variablenwerte müssen nun ggf. für den Verbindungsaufbau angepasst werden:

Dieser Teil des SPS-Programms sieht somit wie folgt aus:

Quick Start (TwinCAT 2) 7:

Auflösen des NamespaceName

Im nächsten Schritt müssen wir den NamespaceName in den zugehörigen NamespaceIndex auflösen. Hierzu verwenden wir den Funktionsbaustein UA_GetNamespaceIndex. Als Eingang erhält dieser Baustein den von uns ermittelten NamespaceName. Setzen Sie in dem SPS-Beispiel also den Wert der Variablen sNamespaceName auf 'http://yourorganisation.org/TcOpcUaSampleServer/'.

Anpassen der Adressinformationen

Nun können wir die weiteren Adressinformationen (IdentifierType und Identifier) der Node im SPS-Beispiel anpassen. Hierfür setzen wir die Variablen sNodeName und NodeID.eIdentifierType auf die entsprechend vorher ermittelten Werte. Der Deklarationsteil des Programms sieht somit wie folgt aus:

Quick Start (TwinCAT 2) 8:

Und der Implementierungsteil:

Quick Start (TwinCAT 2) 9:

Nach diesen Anpassungen können Sie das Programm aktivieren. Der Variablenwert der OPC UA Node wird anschliessend vom Server ausgelesen und in der SPS-Variablen iReadData gespeichert.