-

Erweitertes Retain Handling

Dieses Thema enthält die folgenden Abschnitte:

Was sind Retain-Daten?

Eine Steuerung besitzt neben dem flüchtigen Speicher (normalerweise RAM) einen Retain-Speicher. Die im RAM gespeicherten Daten gehen verloren, sobald die Steuerung abgeschaltet wird. Im Gegensatz dazu bleiben die Daten im Retain-Speicher beim Abschalten der Steuerung erhalten.

Die technische Implementierung des Retain-Speichers (z.B. über integrierten NVRAM oder durch Speichern der Retain-Daten in einer Datei auf einer an der Steuerung eingesteckten SD-Karte) hängt von der verwendeten PLCnext Technology-Steuerung ab. Für den normalen Betrieb spielt die Implementierung keine Rolle. Zum Tragen kommt diese jedoch, wenn Sie eine defekte Steuerung austauschen.

Gemäß IEC 61131-3 müssen Variablen und Ports, die im Retain-Speicher gespeichert werden sollen, mit dem Schlüsselwort 'Remanent' deklariert werden (siehe das Thema "Eigenschaften von Variablen/Ports".) Die Datenliste enthält eine entsprechende Spalte. In C#-Bibliotheken muss das Attribut GdsRetain verwendet werden.

Die PLCnext Technology-Laufzeit berechnet aus den Retain-Variablen eine CRC für das Retain-Speicherlayout. Die Retain-CRC wird zusammen mit den Retain-Werten im Retain-Speicher gespeichert. Dir Firmware führt diese Sicherung automatisch vor jedem Kaltstart durch.

Beim Einschalten der Steuerung versucht die Laufzeit standardmäßig zunächst einen Warmstart. Dieser wird nur durchgeführt, wenn die CRC im Retain-Speicher mit der CRC des aktuell geladenen Projekts übereinstimmt.

Erweitertes Retain Handling (ab PLCnext-Firmware-Version 2020.6)

Das Ändern von Retain-Daten im Programm der Steuerung, z.B. durch Einfügen, Ändern oder Löschen von Retain-Variablen oder der zugehörigen Datentypen, resultiert in einer anderen CRC. Nach dem Senden an die Steuerung (entweder mit dem Befehl 'Schreiben und Starten' oder durch Kopieren der Binärdateien während die Steuerung gestoppt ist), erkennt die Laufzeit die abweichende CRC und die Änderungen im Speicherlayout der Retain-Variablen.

Das Verhalten der PLCnext-Laufzeit nach solchen Änderungen hängt von der Firmware-Version ab: Bis Firmware-Version 2020.3 erfolgt ein Neustart, auch wenn ein Warmstart angefordert wurde. Ab Firmware-Version 2020.6 wird das erweiterte Retain Handling wie unten beschrieben unterstützt.

Hinweis
Die sicherheitsbezogene SPS unterstützt kein erweitertes Retain Handling.

Ohne erweitertes Retain Handling würde das Ändern von Retain-Daten in der Applikation (wie im oben beschriebenen Szenario) einen Kaltstart der Steuerung erfordern. Grund dafür ist, dass die Adressen, an welchen das modifizierte Programm die Retain-Variablen im Steuerungsspeicher erwartet, eventuell durch die Programmänderungen und das anschließende Kompilieren verändert wurden.

Erweitertes Retain Handling behält den Wert jeder remanenten Variablen ohne zugewiesenes Prozessdaten-Element, indem dieser von der Steuerung gelesen wird, bevor das geänderte und neu kompilierte Projekt auf die Steuerung geschrieben wird. Nach dem Schreiben des geänderten Programms auf die Steuerung sendet das System die zuvor gespeicherten Variablenwerte wieder an die entsprechenden Speicheradressen.

Beim erweiterten Retain Handling wird versucht, so viele Retain-Werte wie möglich zu behalten.
Dazu speichert die PLCnext-Laufzeit beim Laden des Projekts das Speicherlayout der Retain-Variablen in einer Datei. Beim nächsten Laden eines Projekts wird die zuvor gespeicherte Datei mit dem Speicherlayout verwendet, um Änderungen im Retain-Speicherlayout zu erkennen. Die gefundenen Änderungen im Layout verwendet die PLCnext-Laufzeit dazu, um möglichst vielen Retain-Daten zu behalten.

Voraussetzungen: Die Retain-Daten können nur wiederherstellt werden, wenn die Retain-CRC des auszuführenden Projekts und die gesicherte Retain-CRC identisch sind. Eine identische CRC ist nur unter folgenden Bedingungen möglich:
Wenn nicht, erfolgt ein Kaltstart (es werden keine Werte gehalten).Angewendete Regeln:

Retain-Daten aus dem Cockpit speichern/laden

Das oben beschriebene Retain Handling wird automatisch von der Laufzeit der Steuerung durchgeführt. Es muss nicht manuell eingegriffen werden.
Zusätzlich können Sie die Retain-Daten ihrer Applikation sichern und wiederherstellen. Auf diese Weise können Sie einen bestimmten Zustand Ihrer Applikation zu einem gewünschten Zeitpunkt "konservieren". Bei Bedarf können Sie die gespeicherten Retain-Werte wieder laden und die Applikation im konservierten Zustand fortsetzen. Wenn Sie die Sicherungsdatei auf eine SD-Karte speichern, können Sie die Retain-Werte bspw. nach einem Austausch der Steuerung wieder verwenden oder auf andere Steuerungen/Applikationen übertragen.

Zu diesem Zweck stehen in der Symbolleiste des Cockpits von PLCnext-Steuerungen (ab Firmware-Version 2020.6) die folgenden Befehle zur Verfügung:

Hinweis
Diese Befehle sind im Cockpit der sicherheitsbezogenen SPS nicht verfügbar, da diese kein erweitertes Retain Handling unterstützt.

Speichert die Retain-Daten in einer Sicherungsdatei.
Der Befehl ist verfügbar, wenn die Steuerung mit PLCnext Engineer verbunden ist und Sie bei der Steuerung angemeldet sind. Der Befehl kann unabhängig vom Status der Steuerung ausgeführt werden.

Hinweis
Stellen Sie sicher, dass keine Retain-Daten im Projekt geändert werden, während die Sicherungsdatei gespeichert wird. Dies kann z.B. dadurch gewährleistet werden, dass die Steuerung vor dem Klicken auf die Schaltfläche in den Stopp-Status gesetzt wird.

Schreibt die Werte aller remanenten Variablen in eine Datei. Der Name der Sicherungsdatei (*.prb) setzt sich aus dem aktuellen Datum mit Tageszeit und dem Namen des angemeldeten Anwenders zusammen.
Es können bis zu 10 Sicherungsdateien erstellt werden. Mit jeder weiteren Sicherung wird die älteste Sicherungsdatei überschrieben.
Stellt die zuletzt gespeicherten Retain-Daten aus einer Sicherungsdatei wieder her.
Der Befehl ist nur verfügbar, wenn die Steuerung mit PLCnext Engineer verbunden und im Status Stopp ist und Sie bei der Steuerung angemeldet sind.
Durch Klicken auf die Schaltfläche werden die zuletzt gespeicherten Retain-Werte aus der Sicherungsdatei geladen. Anschließend erfolgt ein erweiterter Warmstart.

Hinweis
Gesicherte Retain-Daten können auf diese Weise nur wiederhergestellt werden, wenn der Projektname und die Retain-CRC gleich sind. Siehe Abschnitt "Voraussetzungen" oben.