Skip to main content

Persistenzkanal

In einem Persistenzkanal werden die Speicherungseinstellungen für eine oder mehrere Gruppen von persistenten Variablen festgelegt. Er kann durch den Befehl Submodulinstanz hinzufügen einem Persistence Manager-Knoten hinzugefügt werden. Unterhalb des Persistence Managers können bis zu 64 Kanäle erzeugt werden.

Persistenz

Abbildung 29. Persistenzgruppen
Persistenzgruppen


In diesem Dialog können eine oder mehrere Gruppen festgelegt werden, welche durch diesen Kanal verwaltet werden. Standardmäßig ist der Instanzname des Kanalmoduls in der Liste verfügbar. Um eine neue Gruppe zu erzeugen, muss ein eindeutiger Name eingegeben und mit dem Befehl Hinzufügen hinzugefügt werden. Mit Entfernen werden selektierte Gruppen gelöscht.

Variablen können über das Attribut ac_persist den Gruppen zugewiesen werden. Für weitere Informationen siehe: Definition persistenter Variablen, Attribut 'ac.persist'

Persistente Variablen: Diese Liste zeigt alle persistenten Variablen, welche einer der oben gelisteten Persistenzgruppen zugewiesen sind.

Parameter

Die Registerkarte Parameter stellt eine Liste von Optionen zur Speicherung der Variable zur Verfügung.

Abbildung 30. Parameter der persistenten Kanäle
Parameter der persistenten Kanäle


tPeriodicSaving: Nach Ablauf dieses Zeitintervalls werden die Variablen gespeichert. Ein Wert gleich t#0s schaltet diesen Mechanismus aus.

xSaveOnChange: Wenn aktiviert, wird permanent ein Vergleich der aktuellen Werte mit den zuletzt gespeicherten durchgeführt und bei Änderung, ein Speichern ausgelöst. Persistenzkanäle, die xSaveOnChange=FALSE gesetzt haben, werden beim Herunterfahren der Steuerung sowie bei einem Reset (Warm, Kalt, Origin) gespeichert. Außerdem kannein periodisches Speichern stattfinden.

xReadVarsDuringInit: Wenn auf TRUE gesetzt, werden die persistenten Variablen schon während der Initialisierungsphase geladen. Andernfalls werden sie im ersten Applikationszyklus geladen.

xCompressTags: Wenn auf TRUE gesetzt, wird der Instanzpfad der Variablen in komprimierter Form gespeichert. Für weitere Informationen siehe: Speicherformat, Komprimierte Archive.

xConsistentCopyInHighPrioTask: Wenn diese Option TRUE ist, wird eine Kopie der Variablen in der Task höchster Priorität erzeugt, die dann in der Task niedriger Priorität gespeichert wird. Diese Option sollte gewählt werden um eine Inkonsistenz der Daten zu vermeiden, wenn Variablen in einer hochprioren Task verändert werden.

xConvertVarsWithDifferentType: Wenn der Parameter TRUE ist und der Typ der eingelesenen Variablen mit dem Typ der tatsächlichen nicht übereinstimmt, versucht der Persistenzkanal den eingelesenen Wert in den tatsächlichen Typ zu konvertieren. Gelingt dies, wird der Wert akzeptiert; wenn nicht, wird er verworfen. Diese Funktion unterstützt die folgenden Konvertierungen:

Datentyp im Archiv

aktueller Datentyp

Beschreibung

alle Integer

alle Integer

wenn der Wert in den Wertebereich des aktuellen Datentyps passt

alle Integer

Real

alle Integer

LReal

alle Datentypen

String

Real

LReal

Real

ANY_INT

wenn der Archivwert ein Integer mit passendem Wertebereich ist

LReal

Real

wenn der Wert im Datenbereich eines REAL ist

LReal

ANY_INT

wenn der Archivwert ein Integer mit passendem Wertebereich ist

xIntegrityCheckBeforeReading: Wenn der Parameter TRUE ist, wird die Integrität der Datenbank geprüft und beim Schließen des Archivs ein Integritätsobjekt mit abgespeichert.

xSeparateArchivePerToplevelInstance: Wenn der Parameter TRUE ist, wird für jede Toplevel-Instanz ein eigenes Archiv erzeugt. Der Name des Archivs bildet sich aus dem im DataStorage konfigurierten Archivnamen und dem Namen der Toplevel-Modulinstanz: <Archivname>_<InstanzName> oder als <Archivname> für alle Instanzen, die nicht unter einer Toplevelmodulinstanz hängen (beispielsweise Applikationsvariablen). Standardmäßig ist diese Option deaktiviert.

Warnung

Wenn Sie den Parameter nachträglich verändern (TRUE <-> FALSE), ändert sich der Archivname und persistente Variablen können verloren gehen!

xMakeDataCRCConsistencyCheck: Wenn der Parameter TRUE ist, wird ein CRC-Wert zu Beginn und am Ende des Speichervorgangs berechnet. Um den Speichervorgang erfolgreich abschließen zu können, müssen diese beiden Werte gleich sein.

uiSavingRetriesIfCRCConsistencyCheckFails: Gibt der Anzahl der Wiederholung der Speicherung an, wenn xMakeDataCRCConsistencyCheck auf TRUE gesetzt und die CRC-Werte nicht übereinstimmen.

xLogSaveTimeEnabled: Wenn der Parameter TRUE ist, wird die zum Schreiben benötigte Zeit geloggt.

eAutomaticActionOnlineChange: Verhalten, ob und wie die Werte von Variablen bei einem Online-Change gespeichert werden.

  • None: Keine Speicherung

  • Save: Die Werte werden gespeichert. Somit werden auch Änderungen an der Konfiguration mit in den Persistenzspeicher übernommen (beispielsweise das Hinzufügen oder Umbenennen von Variablen).

  • Load: Die Werte werden aus dem Persistenzspeicher geladen. Damit werden eventuelle Initialisierungen (beispielsweise durch FB_INIT, IModule.Init und Modul-Parameter) durch die persistierten Werte überschrieben.

  • LoadAndSave: Die Werte werden sowohl aus dem Persistenzspeicher geladen als auch geschrieben.

eAutomaticActionPlcStop: Festlegung, ob die Werte von Variablen bei einem Reset gespeichert werden.

  • None: Keine Speicherung

  • Save: Die Werte werden gespeichert

HMI, Information

Eine detaillierte Beschreibung zu diesen Dialogen finden Sie unter HMI und Information.