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:
- IO Mapping (Verknüpfung von Ein-/Ausgangs-Symbolen)
- IO Data Pointer
- Methodenaufrufe via Interface
- ADS
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.
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.
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.
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.
Folgende Beispiele zeigen die Realisierung:
Beispiel03: C++ als ADS Server
Beispiel06: UI-C#-ADS Client lädt die Symbolik vom Modul hoch