Beispiel02: Zyklische C++ Logik, die IO von der IO Task verwendet
Dieser Artikel beschreibt die Implementierung eines TC3 C++ Moduls das ein Image einer IO Tasks verwendet.
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.
Quellcode, der vom Assistenten nicht automatisch generiert wird, ist mit einem Beginn-Flag „//sample code“ und Ende-Flag „//sample code end“ gekennzeichnet.
Somit können Sie nach diesen Zeichenketten in den Dateien suchen, um sich ein Bild von den Einzelheiten zu machen.
Beschreibung
Dieses Beispiel beschreibt die Flexibilität von C++ Code bei der Arbeit mit IOs, welche an der Task konfiguriert sind. Durch diesen Ansatz kann ein kompiliertes C++ Modul flexibler reagieren, wenn mit der IO Task unterschiedlich viele IOs verbunden sind. Eine Einsatzmöglichkeit wäre die zyklische Prüfung analoger Eingangskanäle mit je nach Projekt unterschiedlicher Anzahl Kanäle.
Das Beispiel enthält
- das C++ Modul TcIoTaskImageAccessDrv mit einer Instanz des Moduls TcIoTaskIMageAccessDrv_Obj1
- Eine Task „Task1“ mit einem Image, 10 Eingangsvariablen (Var1..Var10) und 10 Ausgangsvariablen (Var11..Var20).
- Sie sind verbunden: Die Instanz wird von der Task aufgerufen und die Instanz nutzt das Image von Task1.
Der C++ Code greift über ein Datenimage auf die Werte zu, das beim Übergang SAFEOP to OP (SO) initialisiert wird.
In der zyklisch ausgeführten Methode CycleUpdate wird durch Aufruf der Helfermethode CheckValue der Wert jeder Eingangsvariablen überprüft. Ist er kleiner als 0, wird die entsprechende Ausgangsvariable auf 1 gesetzt, ist er größer als 0, wird sie auf 2 gesetzt und ist sie gleich 0, dann wird der Ausgang auf 3 gesetzt.
Nach der Aktivierung der Konfiguration können Sie auf die Variablen über den Solution Explorer zugreifen und diese setzen.
Doppelklicken Sie auf das Task1-Abbild des Systems, um eine Übersicht zu erhalten.
Die Eingangsvariablen können geöffnet und dann mit dem Karteireiter Online gesetzt werden.