变量:RETAIN
保留变量由关键字声明 RETAIN
在范围内的编程对象中添加 VAR
, VAR_INPUT
, VAR_OUTPUT
, VAR_IN_OUT
, VAR_STAT
, 或者 VAR_GLOBAL
.
声明的语法
<scope> RETAIN <identifier>: <data type> ( := <initialization> )? // ( ... )? : Optional END_VAR <scope> : VAR | VAR_INPUT | VAR_OUTPUT | VAR_IN_OUT | VAR_STAT | VAR_GLOBAL
输入、输出或内存地址的分配 AT
不允许使用关键字。
例 97. 例子
在 POU 中
VAR RETAIN iVarRetain: INT; END_VAR
在 GVL 中
VAR_GLOBAL RETAIN g_iVarRetain: INT; END_VAR
可能的申报地点
在程序中本地 | 只有变量位于保留内存区域。 注意使用冗余时,整个程序及其所有数据都位于保留内存区域中。 |
在全局变量列表中全局 | 只有变量位于保留内存区域。 注意使用冗余时,整个全局变量列表及其所有数据都位于保留内存区域中。 |
在功能块中本地 | 功能块的整个实例及其所有数据都位于保留内存区域中。只有声明的保留变量受到保护。 |
在函数中本地 | 该变量不在保留内存区域中。此声明没有任何效果。 |
在函数中本地和持久地 | 该变量不在保留内存区域中。此声明没有任何效果。 |
提示
尽可能避免使用 RETAIN
标记功能块的变量。