Skip to main content

Variable: RETAIN

Retain-Variablen werden deklariert, indem in Programmierobjekten im Gültigkeitsbereich VAR, VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT, VAR_STAT oder VAR_GLOBAL das Schlüsselwort RETAIN hinzugefügt wird.

Syntax bei der Deklaration

<scope> RETAIN
    <identifier>: <data type> ( := <initialization> )? // ( ... )? : Optional
END_VAR
<scope> : VAR | VAR_INPUT | VAR_OUTPUT | VAR_IN_OUT | VAR_STAT | VAR_GLOBAL

Eine Zuweisung von Ein-, Ausgabe- oder Speicheradressen mit dem Schlüsselwort AT ist nicht erlaubt.

Beispiel 97. Beispiel

In einer POU

VAR RETAIN
        iVarRetain: INT;
END_VAR

In einer GVL

VAR_GLOBAL RETAIN
        g_iVarRetain: INT;
END_VAR


Mögliche Deklarationsstellen

Lokal in einem Programm

Nur die Variable liegt im Retain-Speicherbereich.

Anmerkung

Bei der Verwendung von Redundanz liegt das gesamte Programm mit all seinen Daten im Retain-Speicherbereich.

Global in einer globalen Variablenliste

Nur die Variable liegt im Retain-Speicherbereich.

Anmerkung

Bei der Verwendung von Redundanz liegt die gesamte globale Variablenliste mit all ihren Daten im Retain-Speicherbereich.

Lokal in einem Funktionsbaustein

Die komplette Instanz des Funktionsbausteins mit all seinen Daten liegt im Retain-Speicherbereich. Nur die deklarierte Retain-Variable wird geschützt.

Lokal in einer Funktion

Die Variable liegt nicht im Retain-Speicherbereich. Diese Deklaration hat keine Auswirkung.

Lokal und persistent in einer Funktion

Die Variable liegt nicht im Retain-Speicherbereich. Diese Deklaration hat keine Auswirkung.

Tipp

Vermeiden Sie möglichst, Variablen eines Funktionsbausteins mit RETAIN zu kennzeichnen.