Beispiel37: Daten archivieren

Das Beispiel TcCOM Object Archiv beschreibt das Wiederherstellen und Speichern des Zustands eines Objekts während der Initialisierung und Deinitialisierung.

Beispiel37: Daten archivieren 1:

TwinCAT unterstützt Retain Daten

TwinCAT unterstützt auch Retain Daten um das NOVRAM eines Gerätes zur Persistierung von Daten zu nutzen.

Download

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 Beispiel37: Daten archivieren 2:.
Das Beispiel ist einsatzbereit.

Beschreibung

Das Beispiel TcCOM Object Archiv beschreibt das Wiederherstellen und Speichern des Zustands eines Objekts während der Initialisierung und Deinitialisierung. Der Zustand der Beispielklasse CModuleArchive entspricht dem Wert des Zählers CModuleArchive::m_counter.

Beim Übergang von PREOP zu SAFEOP, d. h. beim Aufruf der Methode CModuleArchive::SetObjStatePS(), wird der Objektarchivserver (ITComObjArchiveServer) für die Erstellung eines Objektarchivs zum Lesen benutzt, auf das über die Schnittstelle ITComArchiveOp zugegriffen wird. Diese Schnittstelle stellt Überladungen von operator>>() zur Verfügung um im Archiv zu lesen.

Beim Übergang von SAFEOP zu PREOP, d. h. beim Aufruf der Methode CModuleArchive::SetObjStateSP(), wird der TCOM Objektarchivserver für die Erstellung eines Objektarchivs zum Schreiben benutzt, auf das über die Schnittstelle ITComArchiveOp zugegriffen wird. Diese Schnittstelle stellt Überladungen von operator<<() zur Verfügung um im Archiv zu schreiben.

Die hier verwendete Schnittstelle ist nicht für den Echtzeit-Kontext entwickelt, sodass die Schnittstelle nur im Non Real-Time Kontext genutzt werden kann.