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