Skip to main content

Variable : RETAIN

Les variables Retain sont déclarées par le mot clé RETAIN est ajouté dans la programmation des objets dans la portée VAR, VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT, VAR_STAT, ou VAR_GLOBAL.

Syntaxe de la déclaration

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

Une affectation d'entrées, de sorties ou d'adresses mémoire avec AT mot-clé n'est pas autorisé.

Exemple 97. Exemple

Dans un POU

VAR RETAIN
        iVarRetain: INT;
END_VAR

Dans un GVL

VAR_GLOBAL RETAIN
        g_iVarRetain: INT;
END_VAR


Lieux de déclaration possibles

Localement dans un programme

Seule la variable est située dans la zone de mémoire de conservation.

Note

Lors de l'utilisation de la redondance, le programme entier avec toutes ses données se trouve dans la zone de mémoire de conservation.

Globalement dans une liste de variables globales

Seule la variable est située dans la zone de mémoire de conservation.

Note

Lors de l'utilisation de la redondance, la liste complète des variables globales avec toutes ses données se trouve dans la zone de mémoire de conservation.

Localement dans un bloc fonction

L'intégralité de l'instance du bloc fonction avec toutes ses données se trouve dans la zone de mémoire de conservation. Seule la variable de retenue déclarée est protégée.

Localement dans une fonction

La variable n'est pas située dans la zone de mémoire de conservation. Cette déclaration n'a aucun effet.

Localement et de manière persistante dans une fonction

La variable n'est pas située dans la zone de mémoire de conservation. Cette déclaration n'a aucun effet.

Astuce

Dans la mesure du possible, évitez d'utiliser RETAIN pour marquer les variables d'un bloc fonction.