您现在的位置是:首页 > PLC技术 > PLC技术

S7-300/400PLC 数据块的分类及使用

来源:艾特贸易2017-10-30

简介数据块定义在 S7 CPU 的存储器中,用户可在存储器中建立一个或多个数据块。每个数据块可大可小,但 CPU 对数据块数量及数据总量有限制,如对于 CPU314 ,用作数据块的存储器最多为


数据块定义在S7 CPU的存储器中,用户可在存储器中建立一个或多个数据块。每个数据块可大可小,但CPU对数据块数量及数据总量有限制,如对于CPU314,用作数据块的存储器最多为8KB,用户定义的数据总量不能超出这个限制。对数据块必须遵循先定义后使用的原则,否则,将造成系统错误。

    数据块(DB)可用来存储用户程序中逻辑块的变量数据(如数值)。与临时数据不同,当逻辑块执行结束或数据块关闭时,数据块中的数据保持不变。

    用户程序可以使用位、字节、字或双字操作方式访问数据块中的数据,也可以使用符号或绝对地址访问。

    1.数据块的分类

    数据块有三种类型,即共享数据块、背景数据块和用户定义数据块。

    共享数据块又称全局数据块。用于存储全局数据,所有逻辑块(OBFCFB)都可以访问共享数据块存储的信息。

    背景数据块用作私有存储器区,即用作功能块(FB)存储器FB的参数和静态变量安排在它的背景数据块中。背景数据块不是由用户编辑的,而是由编辑器生成的。

    用户定义数据块(DB of Type)是以UDT1为模板所生成的数据块。创建用户定义数据块之前,必须先创建一个用户定义数据类型,如UDT1,并在LAD/STL/FBD S7程序编辑器内定义。

    利用LAD/STL/FBD S7程序编辑器,或用已经生成的用户定义数据类型可建立共享数据块。当调用FB时,系统将产生背景数据块。

    2.数据块寄存器

   CPU有两个数据块寄存器:DBDI寄存器。这样,可以同时打开两个数据块。

    数据块中的数据类型如下。

   (1)基本数据类型

    基本数据类型包括位(Bool)、字节(Byte)、字(Word)、双字(Dword)、整数(INT)、双整数(DINT)和浮点数(Float,或称实数Real)等。

   (2)复合数据类型

    日期和时间用8个字节的BCD码来存储。第05号字节分别存储年、月、日、时、分和秒,毫秒存储在字节6和字节7的高4位,星期存放在字节7的低4位。例如:2008927123025.123秒可以表示为DT#08-09-27-12:30:25.123

    字符串( STRING)由最多254个字符(CHAR)2个字节的头部组成。字符串的默认长度为254,通过定义字符串的长度可以减少它占用的存储空间。

   (3)数组

    数组( ARRAY)是同一类型的数据组合而成的一个单元。ARRAY [1.21..3]是一个二维数组,共有6个整数元素。最多为6维。数组元素“TANK”PRESS[21]:TANK是数据块的符号名,PRESS是数组的名称。方括号中是数组元素的下标。如果在块的变量声明表中声明形参的类型为ARRAY,可以将整个数组而不是某些元素作为参数来传递。

   (4)结构

结构( STRUCT)是不同类型的数据的组合。可以用基本数据类型、复杂数据类型和UDT作为结构中的元素,可以嵌套8层。数据块TANK内结构STACK的元素AMOUNT应表示为“TANK”.STACK.AMOUNT。将结构作为参数传递时,作为形参和实参的两个结构必须有相同的数据结构(即相同数据类型的结构元素和相同的排列顺序)。

   (5)用户定义数据类型

    用户定义数据类型( UDT)是一种特殊的数据结构,由用户自己生成,定义好后可以在用户程序中多次使用。

    在变量声明表中,要明确局部数据的数据类型,这样操作系统才能给变量分配确定的存储空间。局部数据可以是基本数据类型或是复式数据类型,也可以是专门用于参数传递的所谓“参数类型”,如表4-8所示。

4-8参数类型

 表4-8参数类型