Skip to main content

使用保留变量获取数据

保留变量在热启动后保留其值。但是,具有持久性变量的价值保留程度更高。

控制器上需要一个特殊的非易失性存储区来延长使用寿命,例如 NVRAM 或 UPS。将保留变量保存在这样的内存中不需要任何额外的时间,这比使用 Persistence Manager 保留数据具有优势。如果控制器不提供硬件支持,则数据通常存储在文件中。如果您正确关闭控制器,数据将被保留。但是,如果发生电源故障或“拔掉插头”,数据将会丢失。

宣言

要声明保留变量,请将关键字添加到变量声明中 RETAIN 添加。

行为

. 保值
  • 控制器重启

  • 不受控制的退出(仅适用于 NvRAM 等硬件支持)

  • 调用命令 重新设置温暖

. 重新初始化
  • 再次下载应用程序

  • 调用命令 冷复位 (相对于持久变量)

  • 调用命令 重置原点

当您重新启动应用程序时,其变量通常使用显式给定的初始值或默认值进行初始化。用关键字标记的变量 RETAIN 标记根据目标系统在单独的内存区域中管理并保留其值。例如,变量受到电源故障的保护。因此,即使在电源故障后,您也可以在制造工厂的计件器上使用保留变量来继续计数。

保留功能块实例的内存位置

功能块实例在内存中是一体的。这是必要的,以便相同的代码可以在不同的实例上工作。如果现在功能块中的变量具有 RETAIN 标记,然后功能块的每个实例与所有变量一起保存。还有没有像这样标记的功能块的变量。但是,非易失性存储器的可用程度与主存储器不同。

具有指向 SRAM 中实例的指针作为变量的功能块不存储在安全存储器中。

进口于 CoDeSys V2.3-项目

如果你是 CoDeSys V2.3-打开项目将其放入 CODESYS 导入 V3,retain 变量的声明被保留,没有任何作用。

有关更多信息,请参阅 RETAIN打开 V2.3 项目