S7-1500数据块:优化DB与非优化DB的区别有哪些?

电子说

1.3w人已加入

描述

1 S7-1500数据块-优化DB与非优化DB
   
可能是为了适应S7-1500操作系统的新功能同时还要保持原有操作习惯的原因,相对于S7-300/400,S7-1500中数据块功能和参数更多,操作灵活的同时也会感觉到可操作的地方太多了,所以详细了解DB块这些功能非常必要,否则会感到无从下手。S7-1500数据块DB带来最大变化就是优化DB,今天就介绍一下优化DB与非优化DB的区别。

S7-300/400中操作的数据块DB,在S7-1500中就是我们所说的非优化DB,所以S7-300/400移植后的程序块都是非优化的(除了DB外,FC、FB和OB也有优化和非优化的区分)。优化和非优化DB的区别如下:

1.1 数据块的大小

S7-300的数据块最大是32K,S7-400的数据块最大是64K,这里可以再联想一下S7通信BSEND/BRECV,S7-300最大通信字节数是32K,S7-400最大通信字节数是64K,原因就是发送区和接收区是DB。

S7-1500数据块DB的容量是变化的。我们看一下CPU1511数据块DB的最大容量,参考图1。

S7-1500

图1

CPU1511的数据存储区最大是1M 字节,一个数据块最大也是1M 字节。我们再参考一下CPU1517的技术数据,参考图2。

S7-1500

图2

CPU1517的数据存储区最大是8M 字节,一个数据块最大也是8M 字节。可以说一个数据块DB的容量就是CPU的整个数据存储区。

注:

最高端型号的CPU 1518数据存储区最大是20M 字节,一个数据块最大容量是16M字节,可以说一个数据块最大容量就是16M字节,只是小型CPU没有那么大的DB存储区。

1.2 寻址方式

优化DB与非优化DB最大的区别就是寻址方式。

非优化DB是绝地地址的访问方式,例如寻址DB1中的一个INT变量(偏移地址为2)为DB1.DBW2。一个DB块中的变量间带有偏移地址,参考图2。

优化DB是符号地址的访问方式,例如寻址DB1(名称为A)中的一个INT变量(名称为B)为A.B,不能使用DB1.B访问,而在S7-300/400 DB块寻址时是合法的(符号名方式访问)。

S7-1500

图2

创建DB时,缺省设置为优化访问,可以在DB块的属性中去使能优化访问,使之成为非优化DB。

注:

非优化DB既可以使用绝对地址寻址也可以使用符号名寻址,优化DB只能使用符号名寻址,这里并不是说非优化DB寻址方式多,而是与CPU的底层寻址方式有关,例如S7-300/400 CPU底层只支持绝对地址的寻址方式,即使是符号寻址也是为了便于阅读程序而已,所以没有符号表后,上载的程序都是以缺省字符(DB以及程序块OB、FB、FC的声明)或者绝对地址出现(I、Q、M等),而S7-1500底层只支持符号寻址方式,即使是使用非优化DB(创建时自动分配符号名)。

1.3 保持特性

非优化DB只能整体选择保持或者非保持性。

优化DB可以对其中的任何变量选择保持或者非保持性,参考图3。

S7-1500

图3

1.4 占用地址空间

非优化DB按照变量创建次序进行排列,这样变量间会存在间隔,降低存储效率,如图4所示。所以在S7-300/400编程时强调寻址DB中一个2个字节(例如WORD、int)或者4个字节(例如DWORD、Dint)变量,地址都是偶数,如果在程序中寻址DB1.DBD3就有问题了。

S7-1500

图4

优化DB中大数据类型位于块的开始处,实现数据结构合理优化,布尔型变量以宽字节形式存储,显著提高访问速度,如图5所示。

S7-1500

图5

1.5 访问速度

非优化DB字节采样大端编码(低位数据存放在高位地址)方式,优化DB字节采样小端编码方式(低位数据存放在低位地址),如图6所示。S7-1500系统按照小端编码方式处理变量,如果是大端编码的变量,需要先进行字节的调换,然后再计算,如果是一个4个字节的变量,需要调换两次。这也是在S7-1500中建议使用优化DB的原因。

S7-1500

图6







审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分