可能是为了适应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的区别如下。
优化DB与非优化DB最大的区别就是寻址方式。非优化DB是绝地地址的访问方式,DB块中的每个变量间都带有偏移地址。优化DB是符号地址的访问方式,例如下图中,DB5为非优化的DB,DB6为优化的DB,在编程寻址时,如果以%的绝对地址输入时,系统自动将其转换成"DB_1".B,而输入%时会出现报错。

非优化DB

优化DB

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

非优化的DB
优化DB可以对其中的任何变量选择保持或者非保持性,如下图:

优化的DB
二者占用的地址空间也不相同。非优化DB按照变量创建次序进行排列,这样变量间会存在间隔,地址都是偶数,这样降低了存储效率。而优化DB中大数据类型位于块的开始处,实现数据结构合理优化,显著提高访问速度。
但是在实际编程过程中,有些指令不能访问优化的DB,例如BLKMOVE、FILL等。因此我们需要根据实际情况来选择优化或非优化的DB。
在使用TIAPortal创建DB时,默认设置为优化的访问,可以在DB块的属性中取消优化的访问,使其变成非优化的访问,如下图:

更改优化的访问
你学会了吗。看完不要忘了给八阿哥点个赞[赞],你的点赞是八阿哥进行创作的动力!
免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系