PLC300基础逻辑块及数据类型介绍
PLC300基础逻辑块及数据类型介绍
PLC300基础逻辑块及数据类型介绍
一、逻辑块介绍
在 S7 用户程序内可使用多种类型的块,OB、FB、SFB、FC 和 SFC 包含程序段,因此也称为逻辑块。每种块类型许可的块 数目和块长度由 CPU 决定。如下图:
1、组织块OB
组织块是操作系统和用户程序之间的接口。OB 用于执行具体的程序:
1、在 CPU 启动时;
2、在一个循环或延时时间到达时;
3、当发生硬件中断时;
4、当发生故障时;
5、组织块根据其优先级执行。
因此,组织块的基本功能是调用用户程序,同时还可以执行自动化系统的启动、循环程序的处理、中断程序的执行以及错误的处理等功能。不同类型的组织块完成不同的功能。
2、数据块DB
数据块用于存储程序数据,分为全局数据块和背景数据块。数据块就相当于其它的变量地址,访问方式分为直接和间接寻址方式。在创建db块时,如果需要可以插入建好的。对于背景数据块,它与函数块相关联,存储FB的输入、输出、输入/输出、静态变量的参数,其变量只能在FB中定义,不能在背景数据块中直接创建,程序中调用FB时,可以分配一个创建的背景DB,也可以直接定义一个新的DB块,该DB块将自动生成并作为这个FB的背景数据块。
数据块的符号访问:<DB块名>.<变量名>;
绝对地址访问:<DB块号>.<变量长度及偏移量>
3、函数(功能)FC
函数FC是用户编写的没有固定的存储区的块,其临时变量存储在局部数据堆栈中,FC执行结束后,这些数据就丢失。函数FC常用于对一组输入值执行特定运算,例如:可使用 FC 执行标准运算和可重复使用的运算(例如数学计算)或者执行工艺功能(如使用位逻辑运算执行独立的控制)。函数FC也可以在程序中的不同位置多次调用,简化了对经常重复发生的任务的编程。
函数FC在使用时可以选择不带参数的FC和带参数的FC,若需要使用带参数的FC,那么在打开FC后,需要在FC的接口定义相关的接口参数,调用函数FC时需要给FC的所有形参分配实参。
4、函数块(功能块)FB
函数块FB是用户编写的带有自己的存储区的块。函数块FB在使用时可以使用带参数的FB和不带参数的FB。带参数的FB和带参数的FC的区别在于,带参数的FC调用后需要赋予实参后才可运行,而带参数的FB可以不赋予实参,也可以运行。
FB与FC相比,每次调用函数块都必须为之分配背景数据块,一个数据块可以作为一个函数块的背景数据块,也可以作为多个函数块的背景数据块(多重背景数据块),背景数据块作为函数块的存储器,可以将接口数据区(TEMP类型除外)以及函数块运算的中间数据存储于背景数据块中,其他逻辑程序可以直接使用背景数据块存储的数据。对于FC,中间逻辑结果必须使用函数的输入、输出接口区存储。
函数块FB很少作为子程序使用,通常将函数块作为具有存储功能的函数使用,每调用一次分配一个背景数据块,将运算结果传递到背景数据块中存储。一些特殊编程应用可以在函数块中指定接口数据区存储于多重背景数据块的开始位置,使用更灵活。
5、系统函数(系统功能)(SFC)和系统函数块(系统功能块)(SFB)
SFC和SFB集成在CPU中,相当于系统提供的可供用户程序调用的FC或FB,实现与CPU系统相关的一些功能,如读写CPU时钟等功能。调用SFB需要背景数据块。
二、常用数据类型
PLC300常用数据类型主要有B00L(布尔型),BYTE(字节),WORD(字),DWORD(双字),INT(整数),DINT(双整数)以及AEAL(浮点型)。
如下图:
1、位:常称为BOOL(布尔型),只有两个值:0或1。如:I0.0,Q0.1,M0.0,V0.1等。
2、字节(Byte)
一个字节(Byte)等于8位(Bit),其中0位为最低位,7位为最高位。如:IB0(包括I0.0~I0.7位),QB0(包括Q0.0~Q0.7位),MB0,VB0等。范围:00~FF(十进制的0~255)。
3、字(Word)
相邻的两字节(Byte)组成一个字(Word),来表示一个无符号数,因此,字为16位。如:IW0是由IB0和IB1组成的,其中I是区域标识符,W表示字,0是字的起始字节。需要注意的是,字的起始字节(如上例中的“0”)都必须是偶数。字的范围为十六进制的0000~FFFF(即十进制的0~65536)。在编程时要注意,如果已经用了IW0,如再用IB0或IB1要特别加以小心。
4、双字(Double Word)
相邻的两个字(Word)组成一个双字,来表示一个无符号数。因此,双字为32位。如:MD100是由MW100和MW102组成的,其中M是区域标识符,D表示双字,100是双字的起始字节。需要注意的是,双字的起始字节(如上例中的“100”)和字一样,必须是偶数。双字的范围为十六进制的0000~FFFFFFFF(即十进制的0~4294967295)。在编程时要注意,如果已经用了MD100,如再用MW100或MW102要特别加以小心。
以上的字节、字和双字数据类型均为无符号数,即只有正数,没有负数。
5、16位整数(INT,Integer)
整数为有符号数,最高位为符号位,1表示负数,0表示正数。范围为-32768~32767。
6、32位整数(DINT,Double Integer)
32位整数和16位整数一样,为有符号数,最高位为符号位,1表示负数,0表示正数。范围为-2147483648~2147483647。
7、浮点数(R,Real)
浮点数为32位,可以用来表示小数。
三、复合数据类型
用户通过复合基本数据类型而生成就是复合数据类型。复合数据类型包括以下几种:
1、数组(ARRAY)
将一组同一类型的数据组合在一起组成一个单位就是数组。
2、结构(STRUCT)
将一组同不同类型的数据组合在一起组成一个单位就是结构。
3、字符串(STRING)
字符串是由最多254个字符组成的一维数组。
4、日期和时间(DATE-AND-TIME)
用于存储年、月、日、时、分、秒、毫秒和星期的数据。占用8个字节,BCD编码。星期天代码为1,星期一~星期六代码分别是2~7。
如:DT#2004_07_15_12:30:15.200为2004年7月15日12时30分15.2秒。
5、用户定义的数据类型(UDT,User-Defined Data Types)
四、扩展
在PLC300中:常用字母表示如下
I:输入继电器,
Q:输出继电器
M:通用辅助继电器
SM:特殊继电器
V:变量存储器
L:局部变量存储器
S:顺序控制继电器
T:定时器
C:计数器
M表示内部存储区。MB表示长度为字节的操作数在内部存储区,MW表示长度为字的操作数在内部存储区,MD表示长度为双字的操作数在内部存储区。
操作数包含两个要素:标识符和标识参数。标识符用来表示操作数存放区域及操作位数;标识参数用来表示操作数在该存储区域内的具体位置。
存储区域包括有:输入映像区(I),输出映像区(Q),内部存储区(M),物理输入区(PI),物理输出区(PQ),数据块(DB),数据块(DI),临时堆栈(L)
辅助标识符包括有:X(位),B(字节),W(字—2字节),D(双字—4字节)