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. 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
.
- 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.