更新时间:2022-06-02 08:13
IEC 61499是用于分布式工业过程测量与控制系统功能块的标准。
The Standard
The IEC 61499 Standard defines an open architecture for the next generation of distributed control and automation.
This architecture represents a light-weight component solution that provides essential features such as encapsulation of semantics from a particular platform, portability, reconfiguration and a holistic view on distributed applications. As the standard is designed for the development of distributed systems, it further supports features like reusability and interoperability.
The IEC 61499 Standard provides a generic model for distributed systems. This model includes processes and communication networks as an environment for embedded devices, resources and applications.
Applications are built by networks of Function Blocks. The Function Block is the elementary model of the IEC 61499 Standard. A Function Block generally provides an Interface for Event I/O’s and Data I/O’s.
There are two types of Function Blocks. Basic Function Blocks on the one hand and Composite Function Blocks on the other. A Composite Function Block can contain other Composite Function Blocks and/or Basic Function Blocks. Thus, Composite Function Blocks enable modular design methodologies.
Basic Function Blocks include event-driven Execution Control Charts (abbr. ECC), which are similar to state machines. The elements of the ECC are states and event-triggered transitions. An ECC can trigger the execution of Algorithms by the occurrence of events.
An executed algorithm produces new output data from the input data. When the algorithm has finished, an output event is generated. But Output events can also be emitted without the execution of algorithms. Output events might be the input events for other Function Blocks.
IEC 61499 provides:
Generic modeling approach for distributed control applications
Function Block concept
Separation of data and event flow
1990年,IEC TC65(国际电工协会第65技术委员会)收到一个将分布式工业过程测量与控制系统中的软件模块(称“功能块”)某些方面标准化的建议,其中特别强调了使用IEC 61158现场总线标准的IPMCS。功能块同时也是可编程控制器使用的编程语言标准IEC 61131-3的基本组成部分之一,因此TC65决定制定功能块的通用模型,这就是IEC 61499标准的由来。
IEC 61499标准是随着系统控制功能分散化、智能化的要求出现的。利用现场总线设备、智能仪器和传感器构造的大型复杂控制系统,控制功能可物理分散在许多设备中,不同设备中的软件通过通讯网络互连起来。利用IEC 61499标准,由功能块实现这些软件单元,并根据标准规定进行功能块互连,可实现分布式系统的控制功能。例如,智能压力传感器可定义成一个内嵌的模拟输入AI功能块,它提供一组已定义的输入和输出,比如实际测量压力值、传感器标定值和错误状态。利用IEC 61499标准,这些输入和输出可连接到其他功能块的输入和输出,例如压力传感器错误状态就可连接到一个驱动报警显示的功能块,而所有这些功能块分散在一个分布式系统的不同设备中。这种方法为控制系统的设计和改进提供了高度灵活性。
IEC 61499功能块能实现这种完全的分布式IPMCS,其关键在于采用软件组件(software component)技术设计功能块。组件是独立于特定程序设计语言和应用系统、可重用和自包含的软件成分。组件技术是基于面向对象的、支持拖放(drog and drop)和即插即用(plug and play)的软件开发概念。基于组件技术的开发方法,具有开放型、易升级、易维护等优点。主要有CORBA、COM和JavaBeans[2]三种组件技术规范,具体实现时可自由选择。IEC 61499功能块是健壮的、可重用的软件组件,一个功能块提供对特定问题的解决方法,例如对阀的控制,或控制工厂的主体单元(如整条生产线)。系统设计者构建分布式控制系统时,根据控制功能需要选择特定功能块,并按照IEC 61499标准将它们进行软件互连,设计灵活,且系统可伸缩、可变形。可预见将来的工业控制器和仪表可把功能块作为设备固件的一部分,或从功能块库里选择下载,而系统设计将成为功能块选择、组态和互连的简单工作。
IEC 61499标准分为体系结构、软件工具要求、应用规则和符合行规规则四部分。标准定义了一个通用体系结构,并制定了功能块在分布式IPMCS中的应用规则。标准内容包括:各种参考模型,如系统模型、设备模型、功能块模型、管理模型等;IPMCS中功能块的声明规则、行为规则、应用规则;管理应用、资源和设备时功能块的使用规则;设计、实现、操作和维护分布式IPMCS的工程支持。此体系结构以参考模型、文本语法和图形表示为基础,利用它们可以实现以下工程任务:功能块类型的规范和标准化;系统功能和元素的标准化;分布式IPMCS的规范化、分析和验证;分布式IPMCS的构造、实现、操作和维护;实现以上功能的软件工具间信息交互。
1.2 IEC 61499体系结构
依照IEC 61499构建的系统从下到上层次结构为功能块、资源、设备和系统。功能块是系统基本单元,资源是功能块的容器,设备包含单条或多条资源,而设备的互连形成分布式系统。
1.2.1 功能块(Function Block)
IEC 61499中,软件封装和重用的基本单元是功能块。功能块是一个软件功能单元,它由一个由其类型决定的专有数据结构和相关操作组成[3]。IEC 61499功能块按功能分为基本功能块、复合功能块、服务接口功能块(通讯功能块和管理功能块)和适配器(插件和插座)。基本功能块由事件输入和输出、数据输入和输出、执行控制表ECC、算法和内部数据组成,如图1所示。执行控制表是一个事件驱动的状态机,它决定状态机的状态转换规律、状态机当前状态与输入事件的关系、执行算法与进入新状态时发出事件的关系。算法决定功能块的功能特性。特定事件发生时,其变化反映在相应的事件输入上,它驱动相应算法执行,算法读取输入数据,根据输入数据和内部数据产生内部数据和输出数据的新值,最后发出一个事件并把它输出到事件输出上。
功能块的最大特征在于其封装性,具有黑盒子特性。对于功能块外部来说,算法、执行控制表和内部数据都是不可见的,而且使用功能块时一般只需知道其外部接口,如图2所示。
功能块MECH_CTL里包括事件输入START、SENSE、ESTOP和事件输出CMD,以及数据输入SINGLE、HOME、END和数据输出FWD、REV。其中EVENT表示相应外部接口是事件输入或输出,BOOL则表示相应外部接口是数据输入或输出,且为布尔类型。事件接口和数据接口之间的垂直线连接,如图2中事件输入SENSE与数据输入HOME和END相关联,表示SENSE事件到来时,功能块将对HOME和END进行采样。
IEC61499定义了描述功能块的通用模型和方法,以图形和文本两种方式表示。为使功能块定义易于保存和移植,采用可扩展标记语言XML[4]定义系统、设备、资源和功能块,这样有可能在Internet上传播功能块的定义,并利用web浏览器查看它。
1.2.2 资源(Resource)
资源是包含在设备里的一个功能单元。在一个设备里可以在不影响其他资源的情况下对一条资源执行创建、构造、参数化、启动、删除操作。资源的功能,是接收来自过程和通讯接口的数据和事件、处理这些数据和事件,并给过程和通讯接口返回数据和事件。一条资源包括一个本地应用(或分布式应用的本地部分)、过程映射、通讯映射和调度函数。将服务接口功能块SIFB和基本、复合功能块联合使用形成资源以提供一个分布式控制应用的本地部分如图3所示。
1.2.3 设备(Device)
设备是多条资源的容器,并提供这些资源与通讯网络、传感器和执行器之间的接口。这些接口提供的服务由支持分布式应用的专用资源中的SIFB完成。通讯网络把各分散设备集成为一个完整的系统。这样,分布在不同物理设备中的功能块形成了一个真正的分布式应用,如图4所示。
1.3 功能块的优势
功能块由使用软件组件中获得很多优势[5]:
(1)功能块反映了现实世界。设计一个应用时,一个功能块表示控制系统设计中的一个功能实体,各功能块实体组合成控制系统。
(2)功能块是稳定的。功能块是已经证明有效的软件单元,一般不会有大变动,用户可在不同应用中使用同一功能块。功能块封装的算法,在不同控制系统设计中可不做任何修改直接使用。
(3)功能块降低复杂性。用户可使用一个功能块而不用关心它内部如何工作,因为功能块可隐藏其内部算法的复杂性,开发一个应用只需创建并连接多个功能块。
(4)功能块可重用。验证有效的功能块可随库发布,因此可被其他开发者使用。
功能块的以上优点给系统设计者和最终用户带来以下益处:
(1)利用功能块开发应用可大大减少控制软件的数量。
(2)开发控制系统的时间缩短。
(3)使用相同功能块的系统具有一致行为。
(4)已证明有效的设计方案可重复使用
2. 基于功能块的系统设计模式
在IEC 61499体系架构下,常用设计模式有三种[6]:分布式应用、代理和MVC。
2.1 分布式应用
利用此模式设计控制系统,首先根据所实现控制系统的功能要求用功能块原始连接图定义此分布式应用,其中每个功能块对应相应的控制功能。接着选择适当的包含这些核心功能块的资源,并根据实现需要把资源包含在不同设备里。然后将应用中的功能块映射到相应资源中的相应功能块。最后利用通讯服务接口功能块实现不同资源和设备中的功能块之间事件和数据的互连,以达到分布式应用的信息流通讯要求。
2.2 代理(proxy)
代理模式通过建立一个远程服务器的本地代理而把客户与服务器分离。当客户要求服务器提供服务时,它询问本地代理。于是代理向原始服务器发出服务请求。IEC 61499环境下这种模式的一种使用方法是利用SIFB为那些不兼容IEC 61499标准的设备提供代理。
2.3 MVC(Model/View/Controller)
IEC 61499环境下一般使用改进MVC模式进行IPMCS的建模、仿真和测试。在此模式下,Model、View和Controller都是IEC 61499基本功能块。Model块表示受控系统或设备的行为,View块表示与一个或多个Model块关联的图形显示,Controller块封装对一个或多个Model块执行的控制功能,并提供与其他Controller块集成所需的事件和数据接口。同时,设备与用户互作用由人机互作用HMI元素表示,它也是一个功能块。
3.系统设计和仿真实例
利用FBDT(FB Developer Kit)构造的应用DRILL_MVCL完成钻孔机的控制和监视功能。系统由MODEL、VIEW、CONTROL和HMI四个设备组成,分别完成MVC模式下Model, View和Controller的功能,而HMI则处理人机互作用。
LL资源里的功能块网络
每个设备中包含多条资源。以CONTROL设备为例,它含LOAD、SUPPLY、DRILL、UNLOAD和TAKEOFF资源。LOAD资源控制工件的装载,SUPPLY资源控制将工件通过传送带传送至钻孔机下,DRILL则控制钻孔机对工件钻孔,UNLOAD将钻过孔的工件从钻孔机处卸载,TAKEOFF则把工件从流程上取出。
资源功能的实现依赖于其内部功能块集合。以CONTROL设备中的DRILL资源为例,它包含START,DRILL_SENSE,SLIDE_SENSE,CTL,SLIDE_ACT和SLIDE_SENSE功能块。START是启动功能块,完成资源的初始化功能,由事件连接可知,START发出COLD冷启动事件,导致DRILL_SENSE块的INIT事件发生,它初始化后发出INI0事件,并依次导致SLIDE_SENSE、SLIDE_ACT和DRILL_ACT初始化。DRILL_SENSE和SLIDE_SENSE是SUBSCRIBER预定功能块,它们从上游资源的PUBLISHER发布功能块中获取事件和数据;SLIDE_ACT和DRILL_ACT是发布功能块,它们与下游资源中的预定功能块连接并把所需的事件和数据传送过去。这四个块都是通讯服务接口功能块CSFIB,它们的作用在于形成此分布式应用中指明的事件和数据流,完全服务于核心块CTL。CTL块完成滑片和钻头的控制功能。例如,DSENSE事件到来时,CTL采样DHOME、DEND和DSPIN数据接口上的值,算法执行后输出ACT事件,并由DRILL_ACT发布出去,控制钻头钻孔。
利用运行环境,在DRILL_MVCL系统的仿真结果图中,HMI视图表示相应变量的当前状态,用橙、白灯代表,并可进行相应控制。VIEW视图是钻孔流程的模拟视图,图中显示一个在传送带上传送的未钻孔工件和滑片上的已钻孔工件。