Datenpersistenz

Persistente Daten sind Daten, die auch bei einem erneuten Laden der Applikation ihre Werte behalten. Die Werte persistenter Daten können Sie nach einem Download oder Kaltstart wiederherstellen.

CODESYS bietet folgende drei Mechanismen zum Erreichen von Persistenz:

Siehe auch

Bemerkung

Ein weitere Möglichkeit, Daten remanent zu halten, sind die RETAIN-Variablen. Persistente Daten sind immer auch RETAIN. Die RETAIN-Variablen behalten wie die persistenten Variablen bei einem Reset Warm (Stromausfall) ihre Werte, nicht aber bei einem erneuten Download der Applikation, den nur die persistenten Daten überdauern. Über eine Deklaration mit RETAIN + PERSISTENT können Sie die remanenten Eigenschaften auch kombinieren. Dabei werden auch die nur mit VAR PERSISTENT deklarierten Variablen immer als VAR RETAIN PERSISTENT oder VAR PERSISTENT RETAIN behandelt. Dadurch erhalten Sie Daten, die nur noch beim Zurücksetzen der Steuerung in den Auslieferungszustand neu initialisiert werden (Reset Origin).

Welcher Mechanismus für welchen Anwendungsfall?
Hier werden einige übliche Anwendungsfälle betrachtet, die konkreten Beispiele in Klammern beziehen sich auf eine Haussteuerung:
  Anwendungsfall (A) VAR PERSISTENT (B) Persistence Manager (C) Rezepturen
         
1

Erhalten von Geräteeinstellungen

(Stromausfall -> Jalousie “weiß” danach noch, wie lange sie fürs Hochfahren braucht)

geeignet1

(bevorzugter Anwendungsfall, ist aber auch über VAR RETAIN möglich; wenn die Variablen-Definition im Praxisfall des öfteren geändert werden muss, sollten besser Retain-Variablen verwendet werden.

geeignet2

Vorteil: durch spezielle Funktionalitäten (double file buffering) auch für Steuerungen ohne Hardware-Unterstützung einsetzbar

Möglich, aber sehr umständlich
         
2 Erhalten von Werten auch bei Ändern/Erweitern des Applikationsprogramms      
  2a: seltene Erweiterungen (neuer Schalter, neues Licht wurden eingebaut, der Rest bleibt unberührt)

geeignet 1

(bevorzugter Anwendungsfall)

geeignet2 Möglich aber umständlich
  2b:freiere Änderungen, auch Löschen oder Ändern des Datentyps von Variablen (die Haussteuerung läuft und ist persistiert, jetzt wird aber neue Funktionalität eingebaut, so dass in einem Funktionsbaustein eine weitere Variable persistiert werden muss; beispielsweise automatisches Ausschalten einer vergessenen Lampe nach gewisser Zeit) nicht geeignet

geeignet soweit möglich 2

(bevorzugter Anwendungsfall)

Möglich, wenn textuell, aber umständlich
3 Verwenden verschiedener Wertesätze nach Bedarf (Betriebseinstellungen für Sommer, Winter, Urlaub sollen abgelegt und nach Bedarf eingespielt werden können) nicht geeignet nicht geeignet

geeignet

(bevorzugter Anwendungsfall)

         
4 Übertragen der Einstellungen von einer Anlage auf eine andere, die ähnliche Variablen verwendet nicht geeignet geeignet2 geeignet3
         
5 Einstellungen sollen textuell lesbar sein (um Stände/Änderungen vergleichen und editieren zu können) nicht geeignet geeignet2 geeignet3

1 Nachteil: Laufzeitsystem muss den Mechanismus unterstützen: NVRam-Speicher oder USV; Vorteil: Schnelligkeit; empfohlener Anwendungsfall: 1 und 2a

2 Nachteil: Im Falle großer Variablenmengen (> 10000) lange Wartezeiten bei Initialisierung und Shutdown; Vorteil: Keine spezielle Speicherausstattung nötig; Werteerhalt auch bei Änderungen/Erweiterungen/Löschungen;

3 Vorteil: Extern bearbeitbar, Übertragbarkeit; Nachteil: umständlich

Siehe auch