Modul zu Modul Kommunikation

TcCOM Module können untereinander kommunizieren. Dieser Artikel soll eine Übersicht über die unterschiedlichen Möglichkeiten geben. Es gibt vier Arten der Modul zu Modul Kommunikation:

Diese vier Arten werden nun beschrieben.

IO Mapping (Verknüpfung von Ein-/Ausgangs-Symbolen)

Die Ein- und Ausgänge von TcCOM Modulen können durch IO Mapping in der gleichen Weise verknüpft werden, wie auch die Verknüpfungen zu physikalischen Symbolen der Feldbus-Ebene. Dafür werden Data Areas im TMC-Editor angelegt, die entsprechende Ein-/Ausgänge beschreiben. Diese werden in der TwinCAT Solution dann verknüpft.

Durch ein Mapping werden dabei die Daten zu Task-Begin (Inputs) bzw. am Task-Ende (Outputs) bereitgestellt bzw. übernommen. Die Datenkonsistenz wird hierbei durch synchrones bzw. asynchrones Mapping sichergestellt.

Die implementierende Sprache (PLC, C++, Matlab) spielt dabei keine Rolle.

Modul zu Modul Kommunikation 1:

Folgendes Beispiel zeigt die Realisierung:

Beispiel12: Modulkommunikation: Verwendet IO Mapping

IO Data Pointer

Über die Data Area Pointer, die im TMC-Editor angelegt werden, ist auch ein direkter Speicher-Zugriff innerhalb einer Tasks möglich.

Falls mehrere Aufrufende einer Task oder Aufrufende von anderen Tasks vorkommen, muss der Anwender die Datenkonsistenz durch entsprechende Mechanismen sicherstellen. Datenpointer stehen für C++ und Matlab bereit.

Modul zu Modul Kommunikation 2:

Folgendes Beispiel zeigt die Realisierung:

Beispiel10: Modulkommunikation: Verwendung von Datenzeigern

Methodenaufrufe via Interfaces

Wie bereits zuvor beschrieben, können TcCOM Module Interfaces anbieten, die ebenfalls im TMC-Editor definiert werden. Wenn ein Modul diese implementiert („Implemented Interfaces“ im TMC Editor) bietet es entsprechende Methoden an. Ein aufrufendes Modul wird dann einen „Interface Pointer“ zu diesem Modul besitzen, um die Methoden aufzurufen.

Es handelt sich dabei um blockierende Aufrufe, so dass der Aufrufer blockiert bis die aufgerufene Methode zurückkommt und somit die Rückgabewerte der Methoden direkt weiterverwenden kann. Falls mehrere Aufrufende einer Task oder Aufrufende von anderen Tasks vorkommen, muss der Anwender die Datenkonsistenz durch entsprechende Mechanismen sicherstellen.

Modul zu Modul Kommunikation 3:

Folgende Beispiele zeigen die Realisierung:

Beispiel11: Modulkommunikation: SPS-Modul ruft eine Methode eines C-Moduls auf

Beispiel11a: Modulkommunikation: C-Modul führt eine Methode in C-Modul an

Für die Kommunikation mit der PLC existieren weitere Beispiele.

ADS

ADS als interne Kommunikation des TwinCAT Systems allgemein kann auch genutzt werden, um zwischen Modulen zu kommunizieren. Es handelt sich dabei um eine azyklische, event-gesteuerte Kommunikation.

Gleichzeitig kann ADS auch genutzt werden, um Daten aus dem UserMode zu holen bzw. bereitzustellen und mit anderen Steuerungen (also über Netzwerk) zu kommunizieren. Ebenso kann ADS verwendet werden, um eine datenkonsistente Kommunikation z.B. zwischen Tasks / Cores / CPUs sicherzustellen. TcCOM Module können dabei sowohl Client (Anfragender) wie auch Server (Anbietender) sein. Die implementierende Sprache (PLC, C++, Matlab) spielt dabei keine Rolle.

Modul zu Modul Kommunikation 4:

Folgende Beispiele zeigen die Realisierung:

Beispiel03: C++ als ADS Server

Beispiel06: UI-C#-ADS Client lädt die Symbolik vom Modul hoch

Beispiel07: Empfang von ADS Notifications

Beispiel08: Anbieten von ADS-RPC