一开始对优化块的访问不是很理解,只知道要写DB块的绝对地址,一定要取消优化访问。后来用300做了项目后,觉得有些明白了,下面说说自己的理解,请各位高手指正。
以300为例,假设插入一个功能块FB100,背景数据为DB100,接口的静态变量(其余接口参数也是一样的)一共有10个变量,前两个为int类型,占用的地址为DBW10、DBW12,其余均为布尔变量,地址是DBX14.0到DBX15.0,在编程过程中,发现还要增加一个int类型的静态变量,那么这个新的变量的地址为DBW16,DBX15.1到DBX15.7就不能被使用了,造成了空间的浪费。而博图里默认的是优化块的访问和符号寻址,类似上述的情况,最后增加的变量个人理解是无缝衔接的,即从DBX15.1开始的16个位,不会浪费一个位的空间,所以此时无法使用绝对地址访问。其实我觉得有更好的方法,比如在博图里上述静态变量的建立,显示的绝对地址和300里的一样,但编译后,自动调整优化空间为DBW10,DBW12.DBW14,DBX16.0到DBX17.0。
不知大家觉得这么理解对不对?