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_GLOBALUne 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_VARDans un GVL
VAR_GLOBAL RETAIN
g_iVarRetain: INT;
END_VARLieux 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.