Obtener datos con variables de retención
Las variables Retain conservan su valor después de un arranque en caliente. Sin embargo, el grado de retención de valor es mayor con las variables persistentes.
Se requiere un área de memoria no volátil especial en el controlador para extender la vida útil, por ejemplo, como NVRAM o UPS. Guardar las variables retenidas en dicha memoria no requiere tiempo adicional, lo que es una ventaja sobre la retención de datos con el Administrador de persistencia. Si el controlador no ofrece soporte de hardware, los datos generalmente se almacenan en un archivo. Luego, los datos se conservan si apaga el controlador correctamente. Sin embargo, en el caso de un corte de energía o un "tirón del enchufe", los datos se perderán.
Declaración
Para declarar una variable de retención, agregue la palabra clave a una declaración de variable RETAIN
adicional.
Conducta
Reinicio del controlador
Aborto incontrolado (solo disponible con soporte de hardware como NvRAM)
llamando al comando restablecer caliente
Descarga la aplicación de nuevo
llamando al comando Restablecer frío (a diferencia de las variables persistentes)
llamando al comando restablecer el origen
Cuando reinicia una aplicación, sus variables generalmente se inicializan con un valor inicial dado explícitamente o con un valor predeterminado. Variables etiquetadas con la palabra clave RETAIN
marcados se administran en un área de memoria separada dependiendo del sistema de destino y conservan su valor. Las variables están protegidas contra cortes de energía, por ejemplo. Por lo tanto, puede utilizar las variables de retención en un contador de piezas en una planta de fabricación para seguir contando incluso después de un corte de energía.
Ubicación de la memoria de las instancias del bloque de función de retención
Las instancias de bloques de funciones están en una sola pieza en la memoria. Esto es necesario para que el mismo código pueda funcionar en diferentes instancias. Si ahora una variable en un bloque de función con RETAIN
marcado, entonces cada instancia del bloque de función se guarda con todas las variables. También las variables del bloque de función que no estén marcadas así. Sin embargo, la memoria no volátil no está disponible en la misma medida que la memoria principal.
Un bloque de funciones que tiene un puntero a una instancia en la SRAM como variable no se almacena en la memoria protegida.
Importar de CoDeSys V2.3-proyectos
si tú CoDeSys V2.3-Abrir proyecto para ponerlo CODESYS Al importar V3, las declaraciones de las variables de retención se conservan y son efectivas sin cambios.
Para más información, ver RETAIN
y Abrir proyecto V2.3