Funcionamiento
6
Utilización de variables RETAIN/PERSISTENT
6.4
Utilización de variables RETAIN/PERSISTENT
6.4.1
Añadir variables RETAIN/PERSISTENT
6.4.2
Limpiar la memoria PERSISTENT
66
Instrucciones de funcionamiento – MOVI-C
Las variables RETAIN/PERSISTENT pueden conservar su valor más allá del tiempo
de ejecución habitual del programa. Por ello, se utilizan en el programa IEC para
guardar valores a prueba de fallos de la red eléctrica. El espacio de memoria necesa-
rio para utilizar las variables RETAIN/PERSISTENT está disponible en el
®
MOVI-C
CONTROLLER. Véase el capítulo "Datos técnicos" (→ 2 80).
Las variables RETAIN conservan su valor tras una finalización no controlada (o un co-
mando online Reset warm). Las variables RETAIN se inicializan con el comando
Reset Ursprung, el comando Reset kalt y una nueva descarga del programa.
Las variables PERSISTENT conservan sus valores con un Reset kalt, tras una
nueva descarga de la aplicación y con un Reset en caliente. Por tanto, las variables
PERSISTENT sólo se reinicializan con Reset Ursprung.
La siguiente tabla ofrece una vista general de si el tipo de variable conserva su valor
con determinados comandos (x) o si la variable se inicializa (i).
Acción en
ni RETAIN ni PER-
menú IEC "Online"
SISTENT
Modificación en lí-
nea
Reset en caliente
Reset en frío
Cargar
Reset origen
Para añadir variables RETAIN/PERSISTENT, abra el menú contextual en la posición
correspondiente del árbol de dispositivos y seleccione la entrada "Variables persisten-
tes..." en el submenú "Añadir objeto". Esto añade un objeto correspondiente al árbol
de dispositivos, que puede rellenar con sus variables.
Al utilizar las variables RETAIN/PERSISTENT, tenga en cuenta lo siguiente.
•
Las variables RETAIN/PERSISTENT se guardan en la FRAM. Dado que la FRAM
es 10 veces más lenta que la RAM, evite utilizar variables RETAIN/PERSISTENT
en TaskPrio.
•
Cuando se utilizan variables RETAIN/PERSISTENT en una tarea, ésta crea una
copia de los datos para la lectura, escritura y ejecución del programa al inicio del
ciclo y, a continuación, copia los datos de nuevo en la FRAM. Por esta razón, de-
be evitarse utilizar una variable RETAIN/PERSISTENT en más de una tarea, ya
que los datos siempre serán sobrescritos por la tarea posterior.
•
Debe evitarse utilizar bloques funcionales con variables locales RETAIN, porque
en este caso todo el bloque funcional se ejecuta en la memoria RETAIN. Esto ha-
ce que la ejecución sea muy lenta y desperdicie memoria.
Después de modificar las variables PERSISTENT, la memoria PERSISTENT puede
estar completamente llena aunque sólo se utilicen pocas variables PERSISTENT. En
este caso, la memoria PERSISTENT debe ser reordenada. La reordenación limpia los
huecos que se han producido al cambiar las declaraciones de las variables PERSIS-
TENT, reduciendo así las necesidades de memoria.
®
CONTROLLER
RETAIN
x
x
i
x
i
i
i
i
i
i
RETAIN
PERSISTENT
x
x
x
x
i