北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章530 浏览8067163

怎样在博途环境下载但不重新初始化数据块?

现场设备运行过程中有时候我们需要更改在线数据块的结构(比如增加一些变量),但是如果直接更改数据块并下载会导致其重新初始化。这意味着CPU会将数据块中变量的实际值用初始值替换,将会导致实际数据的丢失,甚至引起设备故障。一种变通的方法是:使用快照先将实际值保存到初始值,然后尽快修改下载。这种方法只适用于实际值短时间变化影响不大的情况。有没有一种方法既能更改在线数据块的结构,又不引起数据块重新初始化呢?答案是:有的。下面我来详细介绍下。本文包括如下几个主题:

  1. 结构性更改;

  2. 下载但不重新初始化的工作原理;

  3. 重置预留存储区

cover.png

1、结构性更改
默认情况下,数据块的结构性更改会导致其下载时重新初始化。

数据块的结构性更改包括:

①其中变量名称的更改;

②其中变量的增加或删除;

③其中变量保持特性的更改;

从上面描述来看,我们在数据块中增加变量属于结构性更改,怎样使其不重新初始化呢?这需要使用数据块的一个属性——预留存储区。

注①:初始值修改不属于结构性更改,因此下载时不会引起数据块重新初始化。

注②:这里的数据块既可以是全局数据块,也可以是函数块的背景数据块。

2、数据块下载但不重新初始化的工作原理

首先,只有“优化的块”才支持该功能。勾选“优化的块访问”属性的数据块或函数块默认有一个预留存储区,激活该预留区后,后续声明的变量/参数都存放在该区域中。

选中数据块,右键单击,选择【属性】菜单,可以看到“优化的块访问”选项,如下图所示:

优化的块访问.png

在上述属性对话框中,单击【下载但不重新初始化】。勾选【启用下载,但不重新初始化变量】便启用该功能。在【存储器预留区域】中设置预留存储区的大小,比如100字节;在【预留可保持型存储器】中设置保持型存储器的大小,如下图所示:

下载但不重新初始化.png

设置完成后单击【确定】,该数据块便有了设定大小的预留存储区,但尚未激活。在未激活的情况下,往数据块中添加的变量仍存放在默认存储区。如果进行了结构性更改,则下载时仍会提示需要重新初始化。

那么怎样激活呢?

打开数据块,在其上方有一个红色的、激活预留存储区的按钮,如下图所示:

激活预留存储区.png

单击该按钮会弹出一个对话框:

激活.png

单击【确定】后,再次往数据块中添加的变量,都存放在预留存储区中。此时下载不会再提示需要重新初始化。

3、重置预留存储区

随着变量的添加,预留存储区会越来越小。在【下载但不重新初始化】页面可以查看剩余的存储区字节数。若项目已经阶段性完成,可以在适当的时候将预留存储区的数据集成到常规存储区,以清空预留存储区便于后续使用。此时可以选中数据块并单击右键,在弹出的对话框中选择【编译】→【软件(复位存储器预留区域)】,如下图所示:

复位预留存储区.png

系统会提示下载时需要重新初始化,单击【确定】,完成重置,此时预留存储区的可使用字节数恢复成设定值。

好了,关于下载但不重新初始化数据块的话题就先聊到这里。

相关文章:

谈谈S7-1200/1500系列PLC的优化块访问

下面是PLC基础入门的文章归档链接:

》》PLC基础入门文章归档《《

我的书《西门子S7-1200/1500 PLC SCL语言编程 ——从入门到精通》从硬件到软件,比较详细的介绍了SCL语言的编程,感兴趣的话可以扫描下面的二维码查看:

怎样在博途环境下载但不重新初始化数据块?

来源:本站|   大小:915 KB|   下载次数:216次

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论