剩余变量可以在断电、重新启动、复位和应用程序下载时重新初始化或保留其值。有多种类型的剩余变量,分别声明为“保留”、“持久”或组合“保留持久”。
注意: 对于此控制器,声明为持久变量的变量行为与声明为保留持久的变量的变量相同。
下表描述了各种情况下剩余变量的行为:
操作 |
VAR |
VAR RETAIN |
VAR GLOBAL RETAIN PERSISTENT |
---|---|---|---|
对应用程序进行在线修改 |
X |
X |
X |
在线修改,改动启动应用程序 (1) |
– |
X |
X |
停止 |
X |
X |
X |
电源重置 |
– |
X |
X |
热复位 |
– |
X(2) |
X |
冷复位 |
– |
– |
X |
初始值复位 |
– |
– |
– |
应用程序下载(3) |
– |
– |
X |
X 保持该值。 – 重新初始化该值。 (1) 如果在线修改仅改动启动应用程序的代码部分(例如 a:=a+1; => a:=a+2;),则保持保留变量值。在所有其他情况下,则重新初始化保留变量。 (2) 关于 VAR RETAIN 的详细信息,请参阅热复位命令的作用。 (3) 如果使用 SD 卡下载应用程序,将重新初始化应用程序使用的任何现有保留持久变量。但是,如果使用 EcoStruxure Machine Expert 下载应用程序,现有保留持久变量将保持其值。在上述两种情况下,如果下载的应用程序包含与现有应用程序相同的保留持久变量,现有保留变量将保持其值。 |
注意: 前 1000 个 %MW 会自动持久保留,前提是没有变量与它们关联。它们的值在重新启动/热复位/冷复位后得到保留。其他 %MW 作为 VAR 进行管理。
例如,如果程序中具有:
VAR myVariable AT %MW0 : WORD; END_VAR
%MW0 的行为方式类似于 myVariable(既不会保留,也不会持久)。
步骤 |
操作 |
---|---|
1 |
在应用程序树中,选择应用程序节点。 |
2 |
单击鼠标右键。 |
3 |
选择添加对象 > 持久变量 |
4 |
单击添加。 结果:将显示 PersistentVars 窗口。 |
保留或保留持久变量位于专门的非易失性存储器中。每当在执行编程组织单元 (POU) 期间访问这些变量时,也会访问非易失性存储器。这些变量的访问时间比可影响性能的常规变量的访问时间慢。在写入对性能敏感的 POU 时,需要考虑这一重要因素。