Beispiel12: Modulkommunikation: Verwendet IO Mapping

Dieser Artikel beschreibt, wie zwei TwinCAT 3 C++ Module über das gewöhnliche IO Mapping von TwinCAT 3 kommunizieren können: Zwei Instanzen sind über das IO Mapping verknüpft und greifen periodisch auf den Variablenwert zu.

Download

Hier erhalten Sie den Quellcode für dieses Sample:

https://github.com/Beckhoff/TC1300_Samples/tree/main/S12-Mod2ModIOMapping

1. Öffnen Sie mittels eines Visual Studios, in dem TwinCAT installiert ist, das Projekt über Open Project ….
2. Wenn Sie das Projekt auf Windows oder auf TwinCAT/BSD® ausführen möchten (nicht für Beckhoff RT Linux® nötig): 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 Beispiel12: Modulkommunikation: Verwendet IO Mapping 1:.
Das Beispiel ist einsatzbereit.

Beschreibung

Beide Instanzen werden anhand einer Modulklasse ModuleInToOut realisiert: Die Klasse kopiert zyklisch ihren Eingangsdatenbereich Value auf ihren Ausgangsdatenbereich Value.
Die Instanz Front agiert als Frontend für den Nutzer. Ein Eingangs-Value wird - durch die Methode cycleupdate() - an den Ausgangs-Value übergeben. Dieser Ausgangs-Value von Front wird dem Eingangs-„Value“ der Instanz Back zugeordnet (verknüpft).
Die Back-Instanz wiederum kopiert den Eingangs-Value auf ihren Ausgangs-Value, was vom Nutzer beobachtet werden kann (siehe folgende Schritte des Schnellstarts um das Debugging zu starten: TwinCAT 3 C++ Projekt debuggen)

Letztendlich kann der Nutzer den Eingangs-Value der Front-Instanz festlegen und den Ausgangs-Value von Back beobachten.