您现在的位置是:首页 > PLC技术 > PLC技术
S7-300/400PLC 数据块的分类及使用
来源:艾特贸易2017-10-30
简介数据块定义在 S7 CPU 的存储器中,用户可在存储器中建立一个或多个数据块。每个数据块可大可小,但 CPU 对数据块数量及数据总量有限制,如对于 CPU314 ,用作数据块的存储器最多为
数据块定义在S7 CPU的存储器中,用户可在存储器中建立一个或多个数据块。每个数据块可大可小,但CPU对数据块数量及数据总量有限制,如对于CPU314,用作数据块的存储器最多为8KB,用户定义的数据总量不能超出这个限制。对数据块必须遵循先定义后使用的原则,否则,将造成系统错误。
数据块(DB)可用来存储用户程序中逻辑块的变量数据(如数值)。与临时数据不同,当逻辑块执行结束或数据块关闭时,数据块中的数据保持不变。
用户程序可以使用位、字节、字或双字操作方式访问数据块中的数据,也可以使用符号或绝对地址访问。
1.数据块的分类
数据块有三种类型,即共享数据块、背景数据块和用户定义数据块。
共享数据块又称全局数据块。用于存储全局数据,所有逻辑块(OB、FC、FB)都可以访问共享数据块存储的信息。
背景数据块用作“私有存储器区”,即用作功能块(FB)的“存储器”。FB的参数和静态变量安排在它的背景数据块中。背景数据块不是由用户编辑的,而是由编辑器生成的。
用户定义数据块(DB of Type)是以UDT1为模板所生成的数据块。创建用户定义数据块之前,必须先创建一个用户定义数据类型,如UDT1,并在LAD/STL/FBD S7程序编辑器内定义。
利用LAD/STL/FBD S7程序编辑器,或用已经生成的用户定义数据类型可建立共享数据块。当调用FB时,系统将产生背景数据块。
2.数据块寄存器
CPU有两个数据块寄存器:DB和DI寄存器。这样,可以同时打开两个数据块。
数据块中的数据类型如下。
(1)基本数据类型
基本数据类型包括位(Bool)、字节(Byte)、字(Word)、双字(Dword)、整数(INT)、双整数(DINT)和浮点数(Float,或称实数Real)等。
(2)复合数据类型
日期和时间用8个字节的BCD码来存储。第0~5号字节分别存储年、月、日、时、分和秒,毫秒存储在字节6和字节7的高4位,星期存放在字节7的低4位。例如:2008年9月27日12点30分25.123秒可以表示为DT#08-09-27-12:30:25.123。
字符串( STRING)由最多254个字符(CHAR)和2个字节的头部组成。字符串的默认长度为254,通过定义字符串的长度可以减少它占用的存储空间。
(3)数组
数组( ARRAY)是同一类型的数据组合而成的一个单元。ARRAY [1..2,1..3]是一个二维数组,共有6个整数元素。最多为6维。数组元素“TANK”。PRESS[2,1]:TANK是数据块的符号名,PRESS是数组的名称。方括号中是数组元素的下标。如果在块的变量声明表中声明形参的类型为ARRAY,可以将整个数组而不是某些元素作为参数来传递。
(4)结构
结构( STRUCT)是不同类型的数据的组合。可以用基本数据类型、复杂数据类型和UDT作为结构中的元素,可以嵌套8层。数据块TANK内结构STACK的元素AMOUNT应表示为“TANK”.STACK.AMOUNT。将结构作为参数传递时,作为形参和实参的两个结构必须有相同的数据结构(即相同数据类型的结构元素和相同的排列顺序)。
(5)用户定义数据类型
用户定义数据类型( UDT)是一种特殊的数据结构,由用户自己生成,定义好后可以在用户程序中多次使用。
在变量声明表中,要明确局部数据的数据类型,这样操作系统才能给变量分配确定的存储空间。局部数据可以是基本数据类型或是复式数据类型,也可以是专门用于参数传递的所谓“参数类型”,如表4-8所示。
表4-8参数类型
点击排行
