Retentive Variablen

Aufgabe

Bei Inbetriebnahme oder beim Steuerungstausch müssen Retain-Variablen initialisiert werden. Sie sollten es daher vermeiden, Variablen als Retain-Variablen zu definieren.

 WARNUNG
UNBEABSICHTIGTER GERÄTEBETRIEB
  • Verwenden Sie im Programmabschnitt "retain" (VAR RETAIN) keine Schnittstellen der Bibliothek SystemConfigurationItf.
  • Verwenden Sie im Programmabschnitt "retain" (VAR RETAIN) keine Funktionsbausteine der Bibliothek SystemConfiguration.
Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben.

ProgramIdent und Applikationsänderung

Die Applikation "Application.app" besitzt ein eindeutiges Identifizierungsmerkmal: die ProgramIdent. Mit jeder Änderung der Applikation wird die ProgramIdent ebenfalls geändert. Während des Bootvorgangs wird die Applikation inklusive der ProgramIdent in den Arbeitsspeicher geladen.

Erfolgt eine Änderung der Applikation mit Logic Builder, kann beim nächsten Anmeldevorgang entschieden werden:

  • Ob die Änderungen via Online-Change übertragen werden (Online) oder

  • Ob die Applikation Application.app geändert wird (Download)

Die Anwendung wird mit Online-Change in den Speicher geladen. Am Zyklusende, d. h. wenn alle Tasks abgearbeitet sind, wird auf die geänderte Applikation gewechselt. Das bedeutet, die ProgramIdent der Applikation im Arbeitsspeicher hat sich geändert.

Mit Download, wird die Datei "Application.app" auf der CompactFlash ausgetauscht.

Übertragung einer geänderten Applikation

Retaindaten

Über die folgenden Funktionen kann der Retainbereich gespeichert und wieder geladen werden:

Beim Speichern der Retaindaten in eine Datei wird u. a. die ProgramIdent der Applikation im Arbeitsspeicher mit abgespeichert. Die abgespeicherte ProgramIdent wird beim Zurückladen des Image zur Überprüfung benutzt.

HINWEIS: Bei einer Änderung der Applikation werden auch die Retainvariablen neu im Speicher zugeordnet. Es ist nicht eindeutig vorhersagbar, ob die Speicheradresse einer Retainvariable sich geändert hat oder nicht.

Mit der Funktion FC_RetainImageSave wird ein Abbild des Retainspeichers in eine Datei geschrieben. Es werden nur die Werte der Retainvariablen abgespeichert, nicht deren Zuordnung. Nach einer Änderung der Anwendung kann einer beliebigen Adresse aufgrund der Programmänderung eine andere Retain-Variable zugeordnet worden sein. Wird jetzt ein Speicherabbild vor der Änderung geladen, kann das in der Applikation fatale Auswirkungen haben. Aus diesem Grund wird die ProgramIdent zur Überprüfung herangezogen.

 WARNUNG
UNBEABSICHTIGTER GERÄTEBETRIEB
Verwenden Sie die Funktion FC_RetainImageSave unbedingt erst nach einer Programmänderung, die sich auf die Definitionen oder die Werte der Retain-Variablen auswirkt.
Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben.

Speicherabbild

Das Speichern der Retain-Daten in eine Datei und das erneute Laden dient zur Unterstützung der Initialisierung einer Maschine nach dem Einschalten. Der Retainbereich kann zu einem beliebigen Zeitpunkt, z. B. zur Inbetriebnahme oder Freigabe, in eine Datei gesichert werden. Nach einem Fehler oder dem Einschalten der Maschine kann dann auf ein gesicherter Satz von Retain-Daten verwendet werden.

Das Laden eines Retain-Images zu einem beliebigen Zeitpunkt in einer Anwendung kann zu Fehlern führen.

Laden des Speicherabbilds zu einem beliebigen Zeitpunkt

1.

Es wird z. B. nach der Inbetriebnahme der Maschine ein Image der Retaindaten erzeugt.

2.

Nach einer beliebigen Zeit kann der Anwender dieses Image wieder laden.

3.

In der Zwischenzeit haben sich die Retaindaten im Retainspeicher durch den Betrieb der Maschine geändert.

4.

Durch das Laden des Speicherabbilds würden die aktuellen Retaindaten mit den abgespeicherten Werten überschrieben werden. Dies kann zu Fehlern führen.

 WARNUNG
UNBEABSICHTIGTER GERÄTEBETRIEB
Verwenden Sie die Funktion FC_RetainImageSave unbedingt erst nach einer Programmänderung, die sich auf die Definitionen oder die Werte der Retain-Variablen auswirkt.
Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben.

Eine Änderung der Applikation im Arbeitsspeicher via Online-Change kann zu einer Änderung der Retaindaten führen. Dies führt zu einer Änderung der ProgramIdentes der Applikation im Arbeitsspeicher. Beim Laden eines Speicherabbilds gibt es die Möglichkeit, auf eine Änderung der ProgramIdents zu prüfen. Ist die Prüfung aktiviert, wird das Speicherabbild nicht geladen. Ist die Prüfung deaktiviert, wird das Speicherabbild in den Retainbereich geladen. Dies kann bedeuten, das die Zuordnung der Retain-Daten nicht mehr übereinstimmt, und es kann zu Folgefehlern kommen. Die folgende Darstellung soll dieses Verhalten verdeutlichen:

Laden eines Speicherabbilds nach Änderung der Applikation

 WARNUNG
UNBEABSICHTIGTER GERÄTEBETRIEB
Verwenden Sie die Funktion FC_RetainImageSave unbedingt erst nach einer Programmänderung, die sich auf die Definitionen oder die Werte der Retain-Variablen auswirkt.
Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben.