persistencia de datos
La vida útil de las variables y sus datos se extiende desde el momento en que se crea una variable hasta el momento en que se elimina y su espacio de memoria se libera nuevamente. El tiempo de creación, inicialización o creación de instancias de variables depende del alcance declarado. El momento de la liberación de la memoria generalmente también. Por ejemplo, la memoria de variables globales se libera cuando finaliza la aplicación.
Es posible que reciba datos durante más tiempo del habitual. tu estas a cargo de eso CODESYS Los siguientes mecanismos están disponibles.
Mecanismos de conservación de datos
(A): Lista de variables globales persistentes
con la palabra clave
PERSISTENT RETAIN
Las variables persistentes conservan su valor cuando se vuelve a cargar la aplicación. Los valores también se restauran después de una descarga, arranque en caliente o arranque en frío.
(B): retener variables con la palabra clave
RETAIN
Las variables de retención mantienen su valor después de un inicio en caliente, pero no cuando la aplicación se vuelve a cargar, una descarga o un inicio en frío.
(C): Variables del administrador de persistencia de CODESYS Application Composer
Las variables del Administrador de persistencia se guardan en un archivo externo.
(D): variables de recetas
Las variables de recetas y sus valores se guardan en el archivo de recetas.
mecanismos en comparación
¿Qué mecanismo es adecuado para qué aplicación? La tabla considera algunos casos de uso comunes. Los ejemplos concretos se refieren a un control de la casa.
caso de uso | (A) Variables persistentes | (B) Conservar variables | (c) Variables del administrador de persistencia | (D) Variables de receta | |
---|---|---|---|---|---|
1 | La aplicación debe recibir la configuración del dispositivo. Ejemplo: después de un corte de energía, el control de la casa debe tener la información disponible sobre cuánto tiempo se debe subir una persiana. | Apropiado1 Caso de uso preferido En este caso, también puede utilizar variables de retención en lugar de variables persistentes. Esto es ventajoso para las variables cuya declaración se cambia a menudo. | Apropiado Caso de uso preferido Las variables de retención son ventajosas cuando sus declaraciones se cambian con frecuencia. | Apropiado2 Ventajoso para controladores que no tienen soporte de hardware Esto es posible gracias a funcionalidades especiales como el almacenamiento en búfer de doble archivo. | Posible, pero muy engorroso y por lo tanto no recomendado |
2 | La aplicación también debe recibir valores después de cambios o extensiones del programa. | ||||
2a: Expansiones raras Ejemplo: un programador de aplicaciones agrega un nuevo interruptor al programa e instala una nueva luz. El control de la casa aún debe tener los valores que se han guardado hasta ese momento. | Apropiado1 Caso de uso preferido | Apropiado | Apropiado2 | Posible, pero engorroso | |
2b: cambios más libres, incluida la eliminación o el cambio del tipo de datos de las variables El control de la casa se está ejecutando y persistió. Si un programador de aplicaciones amplía el control con una nueva funcionalidad y, por lo tanto, con una variable persistente adicional en un bloque de funciones, se deben conservar los valores guardados hasta ese momento. Por ejemplo, el programa se amplía en un FB con una variable que controla el apagado automático de una lámpara previamente no controlada después de un tiempo específico. Después de la extensión, el control de la casa debe tener disponibles los tiempos de todas las lámparas controladas. | No adecuado | Apropiado Los datos de las variables de retención se conservan en la medida de lo posible después de un cambio en línea. | Apropiado, tan lejos como sea posible 2 Caso de uso preferido | Posible si es textual, pero engorroso | |
2c: La aplicación debe recibir valores después de una descarga. | Apropiado | No adecuado | Apropiado | Apropiado | |
3 | La aplicación debe poder utilizar diferentes conjuntos de valores. Ejemplo: Los ajustes de funcionamiento para verano, invierno y vacaciones deben guardarse e importarse de nuevo según sea necesario. | No adecuado | No adecuado | No adecuado | Apropiado Caso de uso preferido |
4 | La aplicación debe poder utilizar la configuración de otro sistema. Debe ser posible transferir la configuración a otro sistema que utilice variables similares. | No adecuado | No adecuado | Apropiado2 | Apropiado3 |
5 | La aplicación debe proporcionar datos legibles por humanos. El usuario debe poder leer, comparar y editar los datos. | No adecuado | No adecuado | Apropiado2 | Apropiado3 |
1 Desventaja: solo es posible si el sistema de tiempo de ejecución admite este mecanismo y hay disponible una memoria NVRam o UPS. Ventaja: velocidad; caso de uso recomendado: 1 y 2a
2 Desventaja: en el caso de un gran número de variables (> 10000), se esperan largos tiempos de espera para una inicialización y una desconexión. Ventaja: No se necesita ningún equipo de memoria especial; La retención de valor también se aplica a cambios, extensiones o eliminaciones.
3 Ventaja: Editable externamente, transferibilidad. Desventaja: incómodo
Vida útil de las variables cuando se llaman los comandos en línea
Entrada del usuario en el menú En línea | Variable con vida útil habitual Ninguno de los dos |
|
|
---|---|---|---|
mando cambio en línea | x | x | x |
mando restablecer cálido | i | x | x |
mando Restablecer frío | i | i | x |
mando carga | i | i | X 1 |
mando restablecer el origen | i | i | i |
x : La variable mantiene su valor.
i : La variable se inicializa.
1 Nota: Para la estructura de los datos persistentes, tenga en cuenta la información en "Mecanismo de descarga".
Vida útil de las variables al cargar una aplicación de arranque
Los valores de las variables normales pierden su valor y se reinicializan.
Los valores de las variables persistentes están protegidos
Cuando la estructura de las variables persistentes en la memoria coincide con la estructura en la lista de datos persistentes.
Cuando los datos persistentes solo se han extendido. En este caso, solo las variables agregadas recientemente se configuran con sus valores predeterminados.
Los valores de las variables de retención están protegidos
Cuando la estructura de las variables retenidas en la memoria coincide con la estructura en la lista de datos persistentes.
Cuando las variables de retención coinciden con la aplicación (el GUID debe coincidir).
Si los requisitos para restaurar los valores de las variables de retención y las variables persistentes no se cumplen cuando se inicia la aplicación, se produce una "falta de coincidencia de retención". La reacción a esta discrepancia se describe en la documentación del fabricante del hardware.
Para más información, ver: Conservar datos con variables persistentes