首页 历史故事访问数据块的指令和注意事项

访问数据块的指令和注意事项

【摘要】:数据块的数目和最大块长度依赖于CPU的型号。可以看出,数据块就像一个大柜子,每个字节类似于一个抽屉,存放8个位的数据。这样,对数据块的直接地址寻址和前面介绍的存储区寻址是类似的。在用户程序中使用绝对地址寻址时,一定要结合指令和数据块的符号列表仔细核对绝对地址和数据类型。

数据块用来存储过程的数据和相关的信息,用户程序中需要对数据块中的数据进行访问。由前面可以看到,访问数据单元有两种方法:符号寻址和绝对地址寻址。符号寻址通常是最简便的,但是在某些特殊情况下系统不支持符号寻址,则只能使用绝对地址寻址。

下面先来介绍数据块的数据单元示意图,这是绝对地址寻址的基础。

数据块的数目和最大块长度依赖于CPU的型号。S7-300数据块的是8 KB(字节),S7-400的最大块长度是64 KB。

数据块中的数据单元按字节进行寻址,图6-29所示为数据块的数据单元示意图。可以看出,数据块就像一个大柜子,每个字节类似于一个抽屉,存放8个位的数据。这样,对数据块的直接地址寻址和前面介绍的存储区寻址是类似的。数据块位数据的绝对地址寻址格式为:DB3.DBX4.1,其中DB3表示数据块的编号,点后面的DB表示寻址数据块地址,X表示寻址位数据,4表示位寻址的字节地址,1表示寻址的位数。数据块字节、字和双字数据的绝对地址寻址格式为:DB10.DBB0,DB10.DBW2,DB1.DBD2,其中DB10、DB1表示数据块编号,点后面的DB表示寻址数据块,最后的数字0、2、2表示寻址的起始字节地址,B、W、D分别表示寻址宽度为一个字节(Byte)、一个字(Word)、一个双字(Double Word)。各字节、字和双字的寻址示意图如图6-29所示。

978-7-111-34922-8-Chapter06-32.jpg

图6-29 数据单元示意图

下面新建一个数据块“数据_块_3”,其编号为DB5,不勾选“仅符号访问”项,打开数据块,如图6-30所示。可以看出,此时数据块列多了“偏移量”项,“偏移量”指的是定义符号的地址,例如tag1的偏移量为0.0,表示Bool型变量tag1的绝对地址为“DB5.DBX0.0”,tag3的偏移量为2.0,表示该符号变量的起始位为2.0,由于tag3为Int型,16位数据,1个字,故tag3的绝对地址为“DB5.DBW2”。同样,tag4的绝对地址为“DB5.DBD4”。

在用户程序中使用绝对地址寻址时,一定要结合指令和数据块的符号列表仔细核对绝对地址和数据类型。

在图6-30中勾选任何符号的“保持性”,全部符号的“保持性”将自动被选择。

978-7-111-34922-8-Chapter06-33.jpg

图6-30 数据块