IEC61131-3标准有以下的特点:
变量定义的方便及安全性;统一的编程语言标准;面向对象编程方法;结构化编程方法;
方便、高效的库函数编程;开放;
程序组织单元(POU)
Program:逻辑执行主体;
Function block:面向对象的基本算法单元;
Function:
POU包括:定义变量和代码逻辑实现。包括BYTE、WORD、DWORD、SINT、 USINT、INT、UINT、DINT、UDINT、REAL、LREAL、STRING、TIME、TIME、DATE 、ARRAY、POINTER、Enumeration、
Structures等等,这些基本的数据类型极大程度地满足工业控制行业的需求。
在POU中,按照功能类型划分,一般包括如下7类变量:VAR、VAR_INPUT、VAR_OUTPUT、
VAR_IN_OUT、VAR_EXTERNAL、VAR_GLOBAL、VAR_ACCESS。一般以上述关键字及END_VAR
加以定义。
IEE61131-3 支持功能强大的 6 中编程语言,其中 LAD、FBD、CFC、SFC 都是用图形化的编程界面,工程使用极为方便,逻辑思路清晰,早已成为控制领域中公认的编程标准。
功能块类型是抽象的结构类型的定义,而不是现实的数据实体,只能定义,当然不能被调用和执行。功能块实例是拥有私有数据、可按照既定逻辑完成特定功能、完全封装的、独立的结构型变量。功能块实例是数据实体,不是抽象的类型定义。实例需要按照类型进行合法定义,允许在程序中进行权限允许的调用。在控制器的目标执行平台上必须获得固定的静态内存分配(只不过 VAR_IN_OUT方式定义的静态内存可共享使用,内存消耗最节约)。实例的类型可以同名,但实例名决不允许相同。不同的实例具有功能块类型定义**同的已定义的属性。如在功能块类型定义中,如果对 VAR 项定义了保持型 RETAIN(需要掉电保护、主从 CPU 冗余拷贝特殊处理的数据)属性,则所有该类型实例的 VAR项都具有保持型 RETAIN属性。
函数是有至少一个输入变量、无私有数据、仅仅有一个返回值的基本算法单元。
功能块实例和函数支持使能端(EN)的添加与删除,使逻辑控制更加方便。
程序相关概念:
在程序中调用功能块与函数多重调用:在程序中允许调用功能块实例及函
数,允许在功能块实例中允许调用其它功能块及函数,允许函数调用其它函数。由于函数不存在私有变量,函数当然不能调用功能块实例。
调用规则
鉴于安全因素的考虑,为防止出现不可预定的内存消耗,IEC61131-3 禁止不可预期的递归调用。但是,可以使用有限的跌代实现有限递归。
一般而言,在功能块实例的调用中,需要赋值的输入参数,可以将实参显式传递形参,不要赋值或保持原值的输入参数,可以不用任何显式赋值。功能块实例的调用允许不做任何形参的赋值。在函数调用中,如果出现形参,则必须将全部的形参都做显示赋值。如果不出现形参,则必须按照定义的顺序,将全部实参写入到函数的调用体内。一般而言,功能块实例可做为实参传递,实例的任意项也可作为实参传递。
学到4了,明天从5开始看
文章评论(0条评论)
登录后参与讨论