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é.
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. NoteLors 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. NoteLors 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.