RPC-Methoden

Methodenaufrufe sind ein grundlegender Teil der OPC-UA-Spezifikation. Mit der Einführung dieser Funktionalitäten in die SPS-Welt bietet TwinCAT 3 die Möglichkeit zur effizienten Ausführung von RPC‑Aufrufen in der IEC61131-Welt und verringert somit die klassischen Handshake-Pattern bei der Kommunikation zwischen den Geräten.

Beim Konzept der RPC-Methoden, importiert der TwinCAT OPC UA Server eine Methode aus der TwinCAT SPS/C++ direkt als OPC-UA-Methode.

RPC-Methoden 1:

Voraussetzungen

Diese Funktionalität steht nur für Data Access Geräte basierend auf TwinCAT 3 und dem Import von TMC- sowie TMI-Symboldateien, sowie der Online-Symbolik zur Verfügung.

Das Handling eines RPC-Methodenaufrufs wird auf OPC-UA-Ebene wie folgt durchgeführt:

RPC-Methoden 2:

Abarbeitungskontext

Die TwinCAT SPS/C++ Methode wird innerhalb des Echtzeit-Kontexts ausgeführt und fällt somit in den Abarbeitungskontext einer Echtzeit-Task. Der TwinCAT-Entwickler muss daher Vorsichtsmaßnahmen treffen, sodass die Ausführungszeit der Methode in die Task-Zykluszeit passt.

Methoden in der TwinCAT 3 SPS

Methoden in der IEC61131-Welt werden immer unterhalb eines Funktionsbausteins konfiguriert. Auf Hochsprachenebene kann der Funktionsbaustein als umgebende Klasse der Methode betrachtet werden. Die Methode selbst müssen Sie mit einem speziellen SPS-Attribut deklarieren, sodass das TwinCAT-System weiß, dass die Methode für einen remote Methodenaufruf aktiviert werden soll.

{attribute 'TcRpcEnable':='1'}
METHOD M_Sum : INT
VAR_INPUT
  a : INT;
  b : INT;
END_VAR

In Abhängigkeit davon, welcher Importmodus verwendet wird, müssen Sie den umgebenden Funktionsbaustein ebenfalls für den OPC‑UA‑Zugriff aktivieren. Dies kann durch Verwendung der normalen SPS‑Attribute für den OPC‑UA‑Zugriff erfolgen.

Beachten Sie dabei, dass Sie nur dann die SPS-Attribute verwenden müssen, wenn der gefilterte Modus verwendet wird, um Symbole aus der SPS für den Zugriff über OPC UA freizugeben. Dies ist die Standardeinstellung des OPC UA Servers.

Beispiel:

Die Methode M_Sum befindet sich im Funktionsbaustein FB_Mathematics. Die Deklaration der Funktionsbausteininstanz verwendet das SPS-Attribut, das den Funktionsbaustein und damit die Methode ebenfalls für den OPC-UA-Zugriff aktiviert hat.

PROGRAM MAIN
VAR
  {attribute 'OPC.UA.DA':='1'}
  fbMathematics : FB_Mathematics;
END_VAR

RPC-Methoden 3:

RPC-Methoden 4:

Pointervariablen als VAR_IN_OUT

Pointer-Variablen, die als VAR_IN_OUT definiert wurden, werden weder von der SPS noch vom TwinCAT OPC UA Server behandelt. Ein entsprechendes Trace-Ereignis wird in den Server-Trace geschrieben.

08:47:37.677Z|1|11A0* Fehler beim Importieren der Methode 'METH_PArray': VAR_IN_OUT Zeigervariablen sind nicht erlaubt!

Methoden in TwinCAT 3 C++

TwinCAT‑Module können Schnittstellen implementieren, die über vordefinierte Methoden verfügen (siehe TcCOM‑Module). Die Methode selbst muss für RPC-Aufrufe während ihrer Definition aktiviert sein (siehe Dokumentation TwinCAT Module Class Wizard), sodass der OPC UA Server weiß, dass sie zur Ausführung bereitsteht.

RPC-Methoden 5:

Damit auch der Rückgabewert der Methode zur Verfügung steht, muss die entsprechende Option Include Return Value aktiviert sein. Beachten Sie, dass die Schnittstelle, unter der die Methode erstellt wurde, implementiert werden muss.

RPC-Methoden 6:

In Abhängigkeit davon, welcher Importmodus verwendet wird, müssen Sie die Methode für den Zugriff über OPC UA deklarieren. Dies kann durch Verwendung des TMC-Code-Editors und der üblichen OPC‑UA‑Attribute als optionale Eigenschaften erfolgen.

RPC-Methoden 7:
RPC-Methoden 8: