Beispiel12: Modulkommunikation: Verwendet IO Mapping

Dieser Artikel beschreibt, wie zwei TC3 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 Beispiel.

1. Entpacken Sie die heruntergeladene ZIP-Datei.
2. Öffnen Sie mittels eines Visual Studios, in dem TwinCAT installiert ist, das Projekt über Open Project ….
3. 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 erhalten Sie hier.
4. Wählen Sie Ihr Zielsystem aus.
5. Bauen Sie das Beispiel (z. B. Build->Build Solution).
6. 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.