数据块(DB)定义在S7-CPU的存储器中,用户可在存储器中建立一个或多个数据块。每个数据块可大可小,但CPU对数据块数量和数据总量有限制,对于CPU314,用作数据块的存储器最多为8KB,用户定义的数据总量不能超过这个限量。数据块必须遵循先定义后使用的原则,否则,将造成系统错误。
数据块(DB)可用来存储用户程序中逻辑块的变量数据(如数值)。逻辑块执行结束或数据块关闭时,数据块中的数据保持不变。
用户程序可以使用位、字节、字或双字操作方式访问数据块,也可以使用符号或绝对地址访问。
数据块有三种类型:共享数据块、背景数据块和用户定义数据块。
共享数据块又称全局数据块。用于存储全局数据,所有逻辑块(OB、FC、FB)都可以访问共享数据块存储的信息。
背景数据块用作“私有存储区”即用作功能块(FB)的“存储器”。FB的参数和静态变量安排在它的背景数据块中。背景数据块不是由用户编辑的,而是由编辑器生成的。
背景数据块和共享数据块有不同的用途。任何FB、FC、或OB均可读写存放在共享数据块中的数据。背景数据块是FB运行时的工作存储区,它存放FB的部分运行变量,调用FB时,必须指定一个相关的背景数据块。作为规则,只有FB才能访问存放在背景数据块中的数据。如果CPU中没有足够的内部存储位来保存所有数据,可将一些指定的数据存储到一个共享数据块中。存储在共享数据块中的数据可以被其他的任意一个块使用。而一个背景数据块被指定给一个特定的功能块,它的数据只在这个功能块中有效。与背景数据块相反,在符号表*享数据块的数据类型总是绝对地址。对于背景数据块,相应的功能块总是指定的数据类型。
CPU有两个数据块寄存器:DB(存放共享数据)和DI(存放背景数据)寄存器。这样,可以同时打开两个数据块。