Beispiel20: FileIO-Write
Dieser Artikel beschreibt die Implementierung von TC3 C++ Modulen, die (Prozess-)Werte in eine Datei schreiben.
Das Beschreiben der Datei wird von einem deterministischen Zyklus veranlasst - die Ausführung von File IO ist entkoppelt (asynchron), d. h.: der deterministische Zyklus läuft weiter und wird nicht durch das Schreiben in der Datei behindert.
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
Das Beispiel beinhaltet eine Instanz von TcAsyncWritingModule, die Daten in die Datei AsyncTest.txt im Verzeichnis BOOTPRJPATH (Windows: C:\TwinCAT\3.x\Boot; TwinCAT/BSD: /usr/local/etc/TwinCAT/3.1/Boot) schreibt.
TcAsyncBufferWritingModule hat zwei Puffer (m_Buffer1, m_Buffer2), die abwechselnd mit aktuellen Daten gefüllt werden. Die Membervariable m_pBufferFill zeigt auf den derzeit zu füllenden Puffer. Wenn ein Puffer vollständig gefüllt ist, dann wird die Membervariable m_pBufferWrite so gesetzt, dass sie auf den vollen Puffer zeigt.
Diese Daten werden mit Hilfe von TcFsmFileWriter in eine Datei geschrieben.
Beachten Sie, dass die Datei keinen von Menschen lesbaren Inhalt, wie ASCII Zeichen enthält, stattdessen werden in diesem Beispiel binäre Daten in die Datei geschrieben.