哈喽,你好啊,我是雷工!
本节了解掉电保持变量的相关内容,以下为学习笔记。
01 概念
掉电保持变量即具有PERSISTENT属性的变量。
掉电保持变量除了掉电保存和热复位保留之外,还具有冷复位保留值和程序下载保留值的特性。
掉电保持变量只有在初始值复位才被初始化。
使用点掉电保持的场景就是当设备在掉电、冷复位、热复位、下载程序、在线修改时,希望某些与实际应用关联的参数能够保持当前值,而不会被初始化到初始状态。
例如:程序中的时间计数器,希望当电源掉电恢复后可以继续计数,在重新下载程序后也可以继续计数,就会用到掉电保持变量。
02 变量定义
2.1、普通变量定义
VAR_GLOBAL
LeiGong_var1:INT;
LeiGong_var2:WORD;
LeiGong_var3:BOOL;
LeiGong_var4:STRING;
END_VAR
2.2、掉电保持变量定义
VAR_GLOBAL PERSISTENT RETAIN
LeiGong_var1:INT;
LeiGong_var2:WORD;
LeiGong_var3:BOOL;
LeiGong_var4:STRING;
END_VAR
掉电保持变量除了跟普通变量一样定义完之外还需要添加到掉电保持变量表里
2.3、掉电保持变量表
①:在【Application】右击,选择【添加对象】,选择【掉电保持变量...】
②:直接在【添加掉电保持变量】弹窗中点击【打开】按钮即可。
③:在标准模式下直接编译
这个按视频操作完没出现同样的结果,暂时不知道啥情况
03 变量属性
通过下表可以了解一个变量在复位、掉电等动作后是否保留原值。
动作 | VAR (普通变量) | VAR RETAIN (RETAIN属性 的保留变量) | VAR PERSITENT或者 VAR PERSITENT RETAIN 或者 VAR RETAIN PERSITENT |
掉电 | 值被初始化 | 保留原值 | 保留原值 |
热复位 | 值被初始化 | 保留原值 | 保留原值 |
冷复位 | 值被初始化 | 值被初始化 | 值被初始化 |
初始值复位 | 值被初始化 | 值被初始化 | 保留原值 |
程序下载 | 值被初始化 | 值被初始化 | 保留原值 |
在线修改 | 保留原值 | 保留原值 | 保留原值 |
说明:
①:RETAIN变量和PERSISTENT变量均属于保留变量,都保留在编程系统相同的保留变量区。
②:映射到%M地址的直接变量可以声明为保留变量,而映射到%I和%Q的直接变量不能声明为保留变量。