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
关键字分配输入、输出或内存地址。
示例
在 POU 中:
VAR RETAIN iVarRetain: INT; END_VAR
在龙胆紫中:
VAR_GLOBAL RETAIN g_iVarRetain: INT; END_VAR
可能的申报地点
本地计划 |
只有变量位于保留内存区域。 信息使用冗余时,整个程序及其所有数据都位于保留内存区域。 |
全局变量列表中的全局变量 |
只有变量位于保留内存区域。 信息使用冗余时,整个全局变量列表及其所有数据都位于保留内存区域。 |
功能块中的本地 |
功能块的整个实例及其所有数据都位于保留内存区域。只有声明的保留变量才受保护。 |
局部函数 |
变量不在保留内存区域。本声明无任何效力。 |
在函数中本地持续运行 |
变量不在保留内存区域。本声明无任何效力。 |
尽可能避免使用RETAIN
来标记功能块的变量。