Skip to main content

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_cds_icon_persistent_variables_configuration.png 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.

tabla 6. Comparación de mecanismos y casos de uso

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 RETAIN aún PERSISTENT

RETAIN

PERSISTENT

RETAIN PERSISTENT

PERSISTENT RETAIN

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