Retenga variables con CODESYS Control SL
Comportamiento predeterminado
El comportamiento predeterminado de retener variables de CODESYS Los productos de Control SL son escribir las variables de retención como un archivo cuando el controlador se apaga.
Para garantizar que las variables de retención se puedan almacenar de forma segura incluso en caso de un corte de energía, se debe garantizar un apagado controlado del sistema de ejecución. Por ejemplo, utilice un sistema de alimentación ininterrumpida (UPS)
Además, las variables de retención se pueden escribir y leer activamente a través de la aplicación.
pApp : POINTER TO CmpApp.APPLICATION;
result : DINT;
pApp := CmpApp.AppFindApplicationByName('Application', ADR(result));
//Store values of retain and persistent variables to file
CmpApp.AppStoreRetainsInFile(pApp, '/your/retain/file.ret');
//Get values of retain and persistent variables from file
CmpApp.AppRestoreRetainsFromFile(pApp, '/your/retain/file.ret');Conservar variables en la memoria compartida
Alternativamente, también podría habilitarse un mecanismo que escribiera cíclicamente y retuviera variables en la memoria compartida. Para obtener más información, consulte lo siguiente Conservar datos en la memoria compartida
CmpRetainDoubleBufferedInFile
RetainDoubleBufferedInFile es otro mecanismo que se puede utilizar para escribir variables de retención. Cuando este mecanismo está activado, las variables de retención y persistentes se escriben cíclicamente en la unidad. Cuando esto ocurre, el proceso alterna entre escribir en dos archivos diferentes
Básicamente, RetainDoubleBufferedInFile se habilita a través de SHM mediante una configuración en /etc/CODESYSControl_User.cfg en el dispositivo de destino. En este archivo, en [ComponentManager] sección, sustituya la entrada Component.X=CmpRetain con Component.X=CmpRetainDoubleBufferedInFile.
[ComponentManager] Component.7=CmpRetainDoubleBufferedInFile
Para obtener más información sobre la retención de variables, consulte lo siguiente: Persistencia de los datos