IEC61131-3标准及其实现
IEC61131-3标准的基本概念和定义
IEC61131-3对下述三个方面进行了描述和定义:1、块的概念,2、PLC的配置,3、编程系统应具备的基本功能。
一、块的概念
由POU(Program Organization Unit)构成的程序和项目称之为块(Blocks),POU与传统
PLC世界中的程序块、组织块、顺序快、功能块相对应。
IEC61131-3标准的一个非常重要的目的就是限制块的种类及其隐含的意义,以便统一和
简化它们的用法。为此,标准定义了三种类型的POU,分别如下:
POU类型 意义
程序(PROG) 主程序,包括指定的I/O、全局变量和存取路径 功能块(FB) 拥有输入/输出变量的块,是最常用的POU类型 函数(FUN) 带有函数值的块,作为PLC基本操作集的扩展
三种POU的区别在于:
函数(FUN) 函数POU可以指定参数,但没有静态变量也就是没有存储空间,在用相同的输入参数调用函数时总是返回相同的结果。
功能块(FB) 功能块POU即可以指定参数,也有静态变量,在用相同的参数调用功能块时,返回值取决于内部变量和外部变量,并能将内部变量保持到下一个执行周期。 程序(PROG) 此类POU代表“主程序”,整个程序的所有变量(包括指定的物理地址)都应该在此POU(或资源、配置)中声明,其他方面与功能块POU类似。
POU 是个封装的单元,可以独立地编译,并作为其他程序的部件,经编译的POU可以连接在一起组成完整的程序。
POU 的名字在整个项目中是唯一的、全局的。局部子程序在IEC61131-3中是禁止的,
经编程之后的POU,其名字和调用接口对项目中其他所有的POU是已知的。
POU 的这种独立性大大方便了自动化任务的模块化以及可以重复使用已经获得良好测试和执行的软件单元。
编写PLC程序实际上就是构造功能块(FB)和程序块。大多数情况,PLC已经预先构
造和测试好了大量的功能块(如:定时器和计数器),用户只要将系统提供的功能块按照逻辑要求组织成程序即可。 编写POU的语言种类
IEC61131-3推荐了五种语言来构造POU,分别是:IL(Instruction List)-指令表、FBD
(Function Block Diagram)-功能块图(或方块图)、LD(Ladder Diagram)-梯形图、SFC(Sequence Function Chart)-顺序功能图,ST(Structured Text)-结构化语言。
每一种语言都有其优点和适用的人群,梯形图直观明了,为大多数的工程人员所喜用,
是编写PLC的首选语言。 POU之间的关系
(1), POU 可以互相调用; (2), 禁止递归调用;
(3), 梯形图(LD)、方块图(FBD)、顺序功能图(SFC)通常是能相互转换的; (4), 由梯形图(LD)转换成的指令表(IL)通常也可以由指令表(IL)转回梯形图(LD); (5),用指令表(IL)编写的程序块通常是不能转换成梯形图(LD)的,除非结构很简单。(6),用结构化语言(ST)编写的程序块不能转换成其他四种的任何一种。 标准函数
IEC61131-3只定义了约46个函数,分别是:
数字运算 ABS、SQRT、LOG、LN、EXP、SIN、COS、TAN、ASIN、ACOS、ATAN; 算术运算 ADD、SUB、MUL、DIV、MOD、EXPT、MOVE; 位移与位运算 SHL、SHR、ROR、ROL、AND、OR、XOR、NOT; 选择 SEL、MAX、MIN、LIMIT、MUX; 比较 GT、GE、LT、LE、EQ、NE;
字符串操作 LEN、LEFT、RIGHT、MID、CONTACT、INSERT、DELETE、RAPLACE、FIND;
标准功能块
IEC61131-3只定义了5个功能块,分别是:双稳触发器、边沿触发器、定时器、计数器、通讯功能块;
实际的PLC中这些函数和功能块是远远不够用的。
二、PLC的配置
用IEC61131-3推荐的语言(一种或多种)编写的程序型POU(程序块)通常是相互独
立的,如何将各个程序块组成完整的程序就需要对程序块进行配置,IEC61131-3中引入配置元素的概念,通过声明和定义配置元素将程序块紧密地联系在一起。
配置元素有四种,分别是:配置(Configuration)、资源(Resource)、任务(Task)和
运行程序(Run-Time Program),它们之间是按层次划分的。
四种配置元素的作用如下:
配置元素 描述
Configuration (配置) 定义全局变量(在本配置内有效) 组合PLC系统内的所有资源 定义配置之间的存取路径