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

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.

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.