使用保留变量获取数据
保留变量在热启动后保留其值。但是,具有持久性变量的价值保留程度更高。
控制器上需要一个特殊的非易失性存储区来延长使用寿命,例如 NVRAM 或 UPS。将保留变量保存在这样的内存中不需要任何额外的时间,这比使用 Persistence Manager 保留数据具有优势。如果控制器不提供硬件支持,则数据通常存储在文件中。如果您正确关闭控制器,数据将被保留。但是,如果发生电源故障或“拔掉插头”,数据将会丢失。
宣言
要声明保留变量,请将关键字添加到变量声明中 RETAIN
添加。
行为
控制器重启
不受控制的退出(仅适用于 NvRAM 等硬件支持)
调用命令 重新设置温暖
再次下载应用程序
调用命令 冷复位 (相对于持久变量)
调用命令 重置原点
当您重新启动应用程序时,其变量通常使用显式给定的初始值或默认值进行初始化。用关键字标记的变量 RETAIN
标记根据目标系统在单独的内存区域中管理并保留其值。例如,变量受到电源故障的保护。因此,即使在电源故障后,您也可以在制造工厂的计件器上使用保留变量来继续计数。
保留功能块实例的内存位置
功能块实例在内存中是一体的。这是必要的,以便相同的代码可以在不同的实例上工作。如果现在功能块中的变量具有 RETAIN
标记,然后功能块的每个实例与所有变量一起保存。还有没有像这样标记的功能块的变量。但是,非易失性存储器的可用程度与主存储器不同。
具有指向 SRAM 中实例的指针作为变量的功能块不存储在安全存储器中。
进口于 CoDeSys V2.3-项目
如果你是 CoDeSys V2.3-打开项目将其放入 CODESYS 导入 V3,retain 变量的声明被保留,没有任何作用。
有关更多信息,请参阅 RETAIN
和 打开 V2.3 项目