西门子S7-1200/1500系列PLC支持优化的块访问(Optimized block access),通常理解的是数据块(DB)具有这个功能。
其实除了数据块,组织块、函数块和函数也都有这个功能。
在博途环境下新建这四类程序组织单元,其属性都默认勾选“优化的块访问”。
今天这篇文章,我们来详细谈谈这个功能。
1、数据块(DB)
博途环境下新建数据块,在其属性中可以看到已勾选“优化的块访问”,如下图所示:
优化的数据块具有如下一些特点:
①数据块中的变量只能以符号的方式访问(不支持juedui地址访问)。比如,某优化的数据块名称为“optDB”,其内部有一个start变量,则访问的语法为:
注:optDB两边的双引号是自动添加的,表示这是一个全局变量;如果添加的是井号(#),则表示是局部变量;
为了说明标准数据块与优化的数据块之间存储策略的差别,我们来举个例子。假设有变量按如下顺序存储:
start:布尔型;
speed:实数型;
stop:布尔型;
对于标准数据块,使用juedui地址存储变量(以字节为单位),第一个布尔型变量占用一个字节(B0,虽然它实际只使用了其中一位)。
第二个变量为实数,从偶数地址开始存放,因此其起始地址为B2,占用4个字节(B2~B5);第三个变量为布尔型,占用一个字节(B6)。
可见,在这种存储策略下,这三个变量占用了7个字节存储空间。
当然,如果将顺序调整一下,两个布尔型变量放到一起,会节省一个字节的空间,不过这要求编程人员熟悉其存储策略才行。
在有多种数据类型的情况下,人工优化存储往往费神费力,很难达到理想的效果。
而优化的数据块帮我们解决了这个问题。它会自动将同类型的变量存储到一起,从而最大限度的利用存储空间。两者的对比如下图所示:
②优化的数据块可以对其中的变量单独设置保持属性,而标准数据块要么全部保持,要么全部取消保持;
③对于S7-1200,优化的数据块采取存储优先的策略(由于其数据空间相对较小);对于S7-1500,优化的数据块采取访问优先的策略(由于其数据空间相对较大,为了提高访问速率);
2、组织块(OB)
优化了启动信息。
优化后的组织块只有很少几条启动信息,比如Startup组织块优化后仅有两条启动信息,如下图所示:
3、函数块(FB)
①对其背景数据块进行优化,类似数据块的优化;
②对复杂变量可通过符号寻址;
4、函数(FC)
①优化临时变量的使用,每次块调用前会对其进行初始化;
②对复杂变量可通过符号寻址;