在回答你的问题之前,有必要了解一下PLC中存储器的概念:PLC的物理存储器以字节为单位,因此存储器单元规定为字节(Byte)单元;存储单元可以以位(Bit)、字节(B)、字(W)或双字(DW)为单位使用。每个字节单元包括8个位,以“存储区标识符+字节地址.位序”的形式表示其中的每一位。其中存储区标识符可以是位存储器、输入过程映像输入字节、数据块DB;如果以字为单位使用存储器,需要使用相邻的两个字节来表示,其中低地址字节单元作为字的高字节,高地址字节单元作为字的低字节,如IW0由IB0和IB1组成,IB0位高字节,IB1为低字节。如果你了解了上述概念,对下面的解释就容易理解。
DB1.DBX0.0是直接访问数据块DB1,就是在指令中间同时给出数据块的编号DB1和数据块中的地址DBX0.0。数据块中的存储单元的地址由两部分组成:DB1.DBX0.0表示数据块DB1中的第一个数据字节DBB0中的第一个数据位。上述表示方式是用绝对地址,当然也可以用符号地址直接访问数据块,即给符号表中给每个数据块DB起一个名字(符号),采用符号可以很容易地用源程序调整。
每个CPU而言,用作数据块的存储器是有限制的,如CPU314最多分配8KB字节存储器给数据块,每个字节有8个位,因此其对应的总的位也是固定的
共享数据块DB又称全局数据块,用于存储全局数据,它的数据结构和大小并不依赖于特定的程序块,而是用户自己定义,所以逻辑块(OB、FB、FC)都可以访问共享数据块存储的信息;而背景数据是与某个功能块FB或系统功能块SFB相关联,其内部数据的结构与其对应的FB或SFB的变量声明表一致,它是你在编辑FB或SFB时由程序编辑器自动产生的,不是用户编辑的,不能被其他程序块调用,一个FB可以有多个背景数据块,但背景数据块只能用于一个对应的FB或SFB。
回答者: Bob Wu - 顶级工程师 第12级 2011-02-10 18:34:16