Variable: RETAIN
Las variables de retención son declaradas por la palabra clave RETAIN
se agrega en objetos de programación en el alcance VAR
, VAR_INPUT
, VAR_OUTPUT
, VAR_IN_OUT
, VAR_STAT
, o VAR_GLOBAL
.
Sintaxis para la declaración
<scope> RETAIN <identifier>: <data type> ( := <initialization> )? // ( ... )? : Optional END_VAR <scope> : VAR | VAR_INPUT | VAR_OUTPUT | VAR_IN_OUT | VAR_STAT | VAR_GLOBAL
Una asignación de entradas, salidas o direcciones de memoria con el AT
la palabra clave no está permitida.
En un POU
VAR RETAIN iVarRetain: INT; END_VAR
en una GVL
VAR_GLOBAL RETAIN g_iVarRetain: INT; END_VAR
Posibles lugares de declaración
Localmente en un programa | Solo la variable se encuentra en el área de memoria de retención. NotaCuando se usa la redundancia, el programa completo con todos sus datos se ubica en el área de memoria retenida. |
Globalmente en una lista de variables globales | Solo la variable se encuentra en el área de memoria de retención. NotaCuando se utiliza la redundancia, la lista completa de variables globales con todos sus datos se encuentra en el área de memoria retenida. |
Localmente en un bloque de función | La instancia completa del bloque de función con todos sus datos se encuentra en el área de memoria de retención. Solo la variable de retención declarada está protegida. |
Localmente en una función | La variable no se encuentra en el área de memoria de retención. Esta declaración no tiene ningún efecto. |
Local y persistentemente en una función | La variable no se encuentra en el área de memoria de retención. Esta declaración no tiene ningún efecto. |
Sugerencia
Siempre que sea posible, evite usar RETAIN
para marcar las variables de un bloque de funciones.