Retain-Variablen mit CODESYS Control SL
Standardverhalten
Das Standardverhalten von Retain-Variablen der CODESYS Control SL Produkte ist das Schreiben von Retain-Variablen als Datei beim Herunterfahren der Steuerung.
Um Retain-Variablen auch bei Stromausfall sicher speichern zu können, muss ein geregeltes Herunterfahren des Laufzeitsystems gewährleistet sein. Verwenden Sie beispielsweise eine unterbrechungsfreie Stromversorgung (USV).
Zusätzlich können die Retain-Variablen aktiv über die Applikation geschrieben und gelesen werden.
pApp : POINTER TO CmpApp.APPLICATION;
result : DINT;
pApp := CmpApp.AppFindApplicationByName('Application', ADR(result));
//Store values of retain and persistent variables to file
CmpApp.AppStoreRetainsInFile(pApp, '/your/retain/file.ret');
//Get values of retain and persistent variables from file
CmpApp.AppRestoreRetainsFromFile(pApp, '/your/retain/file.ret');Retain-Variablen im Shared Memory
Alternativ kann ein Mechanismus eingeschalten werden, der Retain-Variablen zyklisch in einen Shared Memory schreibt. Für weitere Informationen siehe: Retain-Daten im Shared Memory
CmpRetainDoubleBufferedInFile
RetainDoubleBufferedInFile stellt einen weiteren Mechanismus dar, der für das Schreiben von Retain-Variablen verwendet werden kann. Wenn dieser Mechanismus aktiv ist, werden Retain- und Persistent-Variablen zyklisch auf den Datenträger geschrieben. Dabei wird immer wechselnd in zwei verschiedene Dateien geschrieben.
Grundsätzlich erfolgt die Aktivierung der RetainDoubleBufferedInFile über SHM durch eine Einstellungen in /etc/CODESYSControl_User.cfg auf dem Zielgerät. Ersetzen Sie in dieser Datei den Eintrag Component.X=CmpRetain unter der Sektion [ComponentManager] mit Component.X=CmpRetainDoubleBufferedInFile.
[ComponentManager] Component.7=CmpRetainDoubleBufferedInFile
Für weiter Informationen zum Thema Retain-Variablen siehe Datenpersistenz.