Skip to main content

变量: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 标记功能块的变量。