Beispiel11a: Modulkommunikation: Methodenaufruf C++-Modul nach C++-Modul

Dieser Artikel beschreibt, wie TwinCAT 3 C++ Module über Methodenaufrufe kommunizieren können. Die Methode schützt die Daten durch eine Critical Section, folglich kann der Zugriff von verschiedenen Kontexten / Tasks initiiert werden.

Download

Hier erhalten Sie den Quellcode für dieses Sample:

https://github.com/Beckhoff/TC1300_Samples/tree/main/S11a-Mod2ModCS

1. Öffnen Sie mittels eines Visual Studios, in dem TwinCAT installiert ist, das Projekt über Open Project ….
2. Konfigurieren Sie das Signieren für dieses Projekt, indem Sie auf der Seite unter Rechtsklick auf dem Projekt->Properties->Tc Sign die TwinCAT Signierung anschalten und Ihr Zertifikat und ggf. Passwort konfigurieren.
Weitere Informationen zur Signierung der C++ Projekte im Kapitel TwinCAT.
3. Wählen Sie Ihr Zielsystem aus.
4. Bauen Sie das Beispiel (z. B. Build->Build Solution).
5. Aktivieren Sie die Konfiguration mit einem Klick auf Beispiel11a: Modulkommunikation: Methodenaufruf C++-Modul nach C++-Modul 1:.
Das Beispiel ist einsatzbereit.

Beschreibung

Das Projekt enthält drei Module:

Die Read/Write Instanzen werden für den Zugriff auf die DataProvider Instanz konfiguriert, die im Menü Interface Pointer auf der Instanzkonfiguration zu sehen ist.
Dort kann man auch den Kontext (Task) konfigurieren, in dem die Instanzen auszuführen sind. Bei diesem Beispiel werden zwei Tasks verwendet - TaskRead und TaskWrite.
Die DataWriteCounterModul- Parameter von CModuleDataWrite und auch DataReadCounterModulo (CModuleDataRead) ermöglichen die Bestimmung des Moments, an dem die Modulinstanzen den Zugriff initiieren.

CriticalSections sind im SDK in der TcRtInterfaces.h beschrieben und damit für den Echtzeit-Kontext vorgesehen.