Skip to main content

使用保留变量 CODESYS 控制 SL

默认行为

保留变量的默认行为 CODESYS 控制 SL 产品是在控制器关闭时将保留变量写入文件。

为确保即使在停电的情况下也能安全地存储保留变量,必须保证运行时系统的受控关闭。例如,使用不间断电源 (UPS)

此外,可以通过应用程序主动写入和读取 retain 变量。

3. 示例
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');


在共享内存中保留变量

或者,也可以启用一种机制,该机制可以循环写入将变量保留到共享内存中。有关更多信息,请参阅以下内容: 将数据保留在共享内存中

CmpRetainDoubleBufferedInFile

RetainDoubleBufferedInFile 是另一种可用于写入保留变量的机制。启用此机制后,保留和永久变量将循环写入驱动器。发生这种情况时,该过程会交替写入两个不同的文件

基本上, RetainDoubleBufferedInFile 通过 SHM 通过中的设置启用 /etc/CODESYSControl_User.cfg 在目标设备上。在此文件中,在 [ComponentManager] 部分,替换条目 Component.X=CmpRetainComponent.X=CmpRetainDoubleBufferedInFile

4. 示例
[ComponentManager]
Component.7=CmpRetainDoubleBufferedInFile


有关保留变量的更多信息,请参阅以下内容: 数据持久性