[西门子] 谈谈S7-1200/1500系列PLC的优化块访问

[复制链接]
查看16745 | 回复0 | 2024-5-5 10:46:32 | 显示全部楼层 |阅读模式
西门子S7-1200/1500系列PLC支持优化的块访问(Optimized block access),通常理解的是数据块(DB)具有这个功能。其实除了数据块,组织块、函数块和函数也都有这个功能。在博途环境下新建这四类程序组织单元,其属性都默认勾选“优化的块访问”。今天这篇文章,我们来详细谈谈这个功能。



1、数据块(DB)

博途环境下新建数据块,在其属性中可以看到已勾选“优化的块访问”,如下图所示:



优化的数据块具有如下一些特点:

①数据块中的变量只能以符号的方式访问(不支持绝对地址访问)。比如,某优化的数据块名称为“optDB”,其内部有一个start变量,则访问的语法为:

"optDB".start
注:optDB两边的双引号是自动添加的,表示这是一个全局变量;如果添加的是井号(#),则表示是局部变量;

为了说明标准数据块与优化的数据块之间存储策略的差别,我们来举个例子。假设有变量按如下顺序存储:

    start:布尔型;

    speed:实数型;

    stop:布尔型;

对于标准数据块,使用绝对地址存储变量(以字节为单位),第一个布尔型变量占用一个字节(B0,虽然它实际只使用了其中一位)。第二个变量为实数,从偶数地址开始存放,因此其起始地址为B2,占用4个字节(B2~B5);第三个变量为布尔型,占用一个字节(B6)。可见,在这种存储策略下,这三个变量占用了7个字节存储空间。当然,如果将顺序调整一下,两个布尔型变量放到一起,会节省一个字节的空间,不过这要求编程人员熟悉其存储策略才行。在有多种数据类型的情况下,人工优化存储往往费神费力,很难达到理想的效果。

而优化的数据块帮我们解决了这个问题。它会自动将同类型的变量存储到一起,从而最大限度的利用存储空间。两者的对比如下图所示:



②优化的数据块可以对其中的变量单独设置保持属性,而标准数据块要么全部保持,要么全部取消保持;

③对于S7-1200,优化的数据块采取存储优先的策略(由于其数据空间相对较小);对于S7-1500,优化的数据块采取访问优先的策略(由于其数据空间相对较大,为了提高访问速率);

2、组织块(OB)

优化了启动信息。

优化后的组织块只有很少几条启动信息,比如Startup组织块优化后仅有两条启动信息,如下图所示:



3、函数块(FB)

①对其背景数据块进行优化,类似数据块的优化;

②对复杂变量可通过符号寻址;

4、函数(FC)

①优化临时变量的使用,每次块调用前会对其进行初始化;

②对复杂变量可通过符号寻址;

好了,关于西门子S7-1200/1500优化的块访问就先介绍到这里。我的书《西门子S7-1200/1500 PLC SCL语言编程 ——从入门到精通》中也有这方面的介绍,感兴趣的话可以点击下面的链接或者左下角的【阅读原文】:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则