如何在博途环境下载但不重新初始化数据块呢?

现场设备运行过程中有时候我们需要更改在线数据块的结构(比如增加一些变量),但是如果直接更改数据块并下载会导致其重新初始化。这意味着cpu会将数据块中变量的实际值用初始值替换,将会导致实际数据的丢失,甚至引起设备故障。一种变通的方法是:使用快照先将实际值保存到初始值,然后尽快修改下载。这种方法只适用于实际值短时间变化影响不大的情况。有没有一种方法既能更改在线数据块的结构,又不引起数据块重新初始化呢?答案是:有的。下面我来详细介绍下。本文包括如下几个主题:
结构性更改;
下载但不重新初始化的工作原理;
重置预留存储区
1、结构性更改
默认情况下,数据块的结构性更改会导致其下载时重新初始化。
数据块的结构性更改包括:
①其中变量名称的更改;
②其中变量的增加或删除;
③其中变量保持特性的更改;
从上面描述来看,我们在数据块中增加变量属于结构性更改,怎样使其不重新初始化呢?这需要使用数据块的一个属性——预留存储区。
注①:初始值修改不属于结构性更改,因此下载时不会引起数据块重新初始化。
注②:这里的数据块既可以是全局数据块,也可以是函数块的背景数据块。
2、数据块下载但不重新初始化的工作原理
首先,只有“优化的块”才支持该功能。勾选“优化的块访问”属性的数据块或函数块默认有一个预留存储区,激活该预留区后,后续声明的变量/参数都存放在该区域中。
选中数据块,右键单击,选择【属性】菜单,可以看到“优化的块访问”选项,如下图所示:
在上述属性对话框中,单击【下载但不重新初始化】。勾选【启用下载,但不重新初始化变量】便启用该功能。在【存储器预留区域】中设置预留存储区的大小,比如100字节;在【预留可保持型存储器】中设置保持型存储器的大小,如下图所示:
设置完成后单击【确定】,该数据块便有了设定大小的预留存储区,但尚未激活。在未激活的情况下,往数据块中添加的变量仍存放在默认存储区。如果进行了结构性更改,则下载时仍会提示需要重新初始化。
那么怎样激活呢?
打开数据块,在其上方有一个红色的、激活预留存储区的按钮,如下图所示:
单击该按钮会弹出一个对话框:
单击【确定】后,再次往数据块中添加的变量,都存放在预留存储区中。此时下载不会再提示需要重新初始化。
3、重置预留存储区
随着变量的添加,预留存储区会越来越小。在【下载但不重新初始化】页面可以查看剩余的存储区字节数。若项目已经阶段性完成,可以在适当的时候将预留存储区的数据集成到常规存储区,以清空预留存储区便于后续使用。此时可以选中数据块并单击右键,在弹出的对话框中选择【编译】→【软件(复位存储器预留区域)】,如下图所示:
系统会提示下载时需要重新初始化,单击【确定】,完成重置,此时预留存储区的可使用字节数恢复成设定值。


ACES对直流变换器功率需求的影响分析
2024年将会是Wi-Fi 7元年
盛思锐推出流量传感器平台
东软睿驰荣获广汽传祺2023年度“科技创新奖”
稀土元素在电镀设备技术中的应用
如何在博途环境下载但不重新初始化数据块呢?
新能源汽车电子电气架构及高压连接器的发展
叮咚2代智能音箱拆机图详解_叮咚2代智能音箱深度评测
西藏首个虚拟现实和增强现实技术应用协会揭牌
SpringBoot分布式事务的解决方案(JTA+Atomic+多数据源)
围绕超越摩尔定律的存储器产品将崭露头角
2020高交会 人脸识别产业链的观展路线
BioXcel是第一家使用机器学习和AI来识别对患者有益的新药的公司
CMOS概念报涨;触控芯片概念报跌;MEMS传感器概念报跌
桁架机械手维修方式?
优炫软件与蜀道智慧交通集团签署战略合作协议,打造智慧交通新形态
激光点云感知三维空间介绍
上海积塔半导体特色工艺生产线项目将于本月开工!
警惕工业自动化控制系统所带来的安全风险
S32G3量产,S32G汽车网络处理器规模翻番!这颗芯为何这么受欢迎?