TcCOM_Sample01_PlcToPlc

Dieses Beispiel beschreibt eine TcCOM-Kommunikation zwischen zwei SPS.

Funktionalitäten, die von einem Funktionsbaustein in der ersten SPS (im Beispiel auch „Provider“ genannt) bereitgestellt werden, werden aus der zweiten SPS (im Beispiel auch „Caller“ genannt) heraus aufgerufen. Dazu muss der Funktionsbaustein oder dessen Programmcode nicht kopiert werden, sondern es wird direkt mit der Objektinstanz, die sich in der ersten SPS befindet, gearbeitet.

Beide SPS müssen sich in einer TwinCAT-Laufzeit befinden. Ein Funktionsbaustein bietet hierbei seine Methoden über eine global definierte Schnittstelle systemweit an und stellt selbst ein TcCOM-Objekt dar. Wie jedes TcCOM-Objekt wird auch ein solcher Funktionsbaustein zur Laufzeit im Knoten TcCOM Objects gelistet.

TcCOM_Sample01_PlcToPlc 1:

Die Vorgehensweise wird in folgenden Unterkapiteln erläutert:

Download des Beispiels: TcCOM_Sample01_PlcToPlc.zip

TcCOM_Sample01_PlcToPlc 2:

Race Conditions bei Multi-Tasking (Multi-Threading)-Verwendung

Der Funktionsbaustein, der seine Funktionalität global zur Verfügung stellt, wird in der ersten SPS instanziiert. Dort kann er wie jeder Funktionsbaustein verwendet werden. Wenn er außerdem aus einer anderen SPS (oder bspw. einem C++ Modul) verwendet wird, achten Sie darauf, dass die angebotenen Methoden thread-sicher sind, da die verschiedenen Aufrufe je nach Systemkonfiguration zeitgleich aus unterschiedlichen Taskkontexten erfolgen oder sich gegenseitig unterbrechen könnten. In diesem Fall dürfen die Methoden nicht auf Membervariablen des Funktionsbausteins oder globale Variablen der ersten SPS zugreifen. Sollte dies zwingend notwendig sein, beugen Sie einem zeitgleichen Zugriff vor. Beachten Sie die Funktion TestAndSet() aus der Tc2_System Bibliothek.

Systemvoraussetzungen

TwinCAT Version

Hardware

Einzubindende Bibliotheken

TwinCAT 3.1, Build 4020

x86, x64, ARM

Tc3_Module