剩余变量

概述

剩余变量可以在断电、重新启动、复位和应用程序下载时重新初始化或保留其值。有多种类型的剩余变量,分别声明为“保留”、“持久”或组合“保留持久”。

注意: 对于此控制器,声明为持久变量的变量行为与声明为保留持久的变量的变量相同。

下表描述了各种情况下剩余变量的行为:

操作

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 时,需要考虑这一重要因素。