高观点下的IEC61499 功能块

Posted 姚家湾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高观点下的IEC61499 功能块相关的知识,希望对你有一定的参考价值。

        IEC61499 是分布式工业测量,控制和监督系统功能块的标准,它的最大特点是基于事件的功能块和分布式系统的建模方式。许多人都将它与IEC61131-3 标准做对比。并且认为它将会替代IEC61131-3 语言,成为下一代控制系统的设计语言。在笔者看来,这是一种误解,而且不利于发挥IEC61499 的优势。

        我们要十分清楚地认识到,IEC61499标准是一个关于分布式系统的建模的标准。 它更擅长构建复杂的分布式控制系统。将它应用于分布式系统更充分地发挥它的强项,使这项技术有用武之地。

       IEC61499 的标准制定者和开发者好像并没有充分地认识到这一点。通常的做法是将一个系统级的功能块网络映射到多个物理设备上。系统的功能块网络分层若干段,它们成为了设备内部的功能块网络。通过网络实现跨设备的连接,设备和网络属于所谓的资源,而不是IEC61499 模型的一部分。这里或多或少保留了IEC61131-3 的概念和术语。一个自顶向下的分布式控制模型硬生生地切了“香肠”,回到了单机联网的模式。实在是太可惜了。

        站在更高的角度去研究IEC61499 的功能块,有助于我们从分布式系统的角度出发,探讨IEC61499 标准更广的应用领域。

IEC61499 技术背景

功能块

        功能块封装了功能,它的外部接口包括了事件接口和数据接口,功能块的内部包括了状态机和算法,当外部输入事件与数据一起到达时,会触发内部状态机的变化,并且调用相应的内部算法。算法执行完成后,将输出输出数据,并触发输出事件。

功能块网络

        一个分布式控制系统由多个功能块连接成为的网络构成。功能块网络也被称为IEC61499 的应用(Application)。

部署

适配器

        IEC61499标准中的适配器(Adapter)是一组事件和数据构成,功能上类似于硬件电路的电缆线,一个适配器由一对插座和插头组成。可以在功能块定义中应用。

高观点下的IEC61499功能块

      所谓高观点,就是站在系统的角度来看待基于功能块的分布式系统。在IEC61499 的观点下,分布式系统是有一系列功能块通过事件和数据连接构成的功能块网络,网络中的连接可以是事件和数据连接(Event/Data connection) 。也可以是通过网络连接。但是目前大多数的IEC61499 功能块建模方法具有一定的局限性。它们采取了整体功能块网络设计,然后通过映射的方式将功能块网络分段载入设备。然后针对具体的应用需要对各个设备做大量的设置和修改。又回到了单机联网的老路上去了。

        下图是三个设备运行功能块网络的例子。它们内部分别运行一段功能块网络,设备之间需要额外添加通信功能块(紫色的功能块),实现设备之间的通信。

 

       

基于组件的分布式系统模型

        我们探讨在IEC61499 功能块的基础之上,构建一种基于组件的分布式控制系统模型 。

 从这里开始。我们将功能块称为组件(Component)。定义如下三种组件。

组件(Component)

        组件是可执行的功能块,组件内部可以包含组件网络,构建成复合组件(Composite Component) 。实现功能块的嵌套。复合功能块提供了使用小功能块构建更大功能块的方法。这是一种描述复杂功能的有效方式。

使用IEC61499 基于事件的功能块构建组件模型。

运行时组件(Runtime Components)

        运行时组件是能够在设备,容器(运行单元)中独立运行的组件。运行单元(Run Uinit)中包含一个运行时(RunTime)。运行单元类似于IEC61499 标准中的资源。它为组件运行时提供必需的资源,运行单元可以是小型设备(传感器,控制器),边缘服务器,云端的容器(Dockers)等。

系统组件(System Component)

 一个分布式系统的模型是系统组件。它内部包含了有多个运行时组件(RunTime Component)运行时组件映射到物理设备和容器中,它们独立于其它运行时组件运行,并通过网络交换信息。

连接(connection)

组件通过连接(Connection)构成组件网络。按照IEC61499 标准。连接包括

1 事件连接(Event Connections)

2 数据连接(DataConnections)

3 适配器(Adapter)

适配器扩展模型

       在IEC61499标准中,适配器的功能是将多个连接组成一组,减少了连线的数量。它类似于硬件逻辑图中的总线(BUS)。例如一组数据(D0 ~D16)以及相关的控制信号(REQ)。设配器类型由两部分组成(Socket和Plug)。适配器并并不能够连接分布式功能块之间的数据?事件连接。分布式功能块之间的数据/事件传递需要通过相应的网络服务功能块来完成。这样具有一定的局限性。在4diac IDE 中,需要将功能块映射到设备,然后手动的方式添加合适的网络服务功能块。例如Publsih/Subscribe,Client/Server 等服务功能块。

          解决这个问题的方法是将适配器扩展到网络连接。例如,在下图中定义一个TCP/IP 类型的适配器(TCP/IP Adapter) 。实际上适配器类型表现为一对功能块,功能块A带Socket  ,功能块B 含有Plug 。当A,B 功能块的Socket 和Plug 使用连线连接起来,相当于在功能块A 中包含了TCP/IP Server 功能块,在功能块B 中包含了一个TCP/IP Client. 功能块。在4diac IDE 中,通信服务功能块是需要人工额外添加的。

 试验方案

     我们正在开发一个基于组件的分布式控制系统的建模工具(OpenSystem IDE),它与OPCUA ,工业4.0 AAS 建模相结合。 实验项目的分布式控制系统结构如下。

        每台设备上 有至少一个运行单元(Run Unit),运行时组件(Runtime Component)在其中运行。运行时组件具有如下适配器接口。

  1. OPC UA Client Plug
  2. OPC UA Server Socket
  3. OPC UA Publish Socket
  4. OPC UA Subscribe Plug
  5. I4.0 language Plug
  6. I4.0 language Socket

符合标准

         基于组件的模型是建立在IEC61499 功能块之上的,底层仍然遵循IEC61499 标准、

结束语

        本文提出了分布式控制系统的一种系统级建模方法,这种方法基于组件(Component based modeling)模型架构。

        组件模型是建立在OPC UA和IEC61499 模型的基础之上的开放性自动化建模方法。它的理念是将更多的东西通过统一的模型建模。使OT功能师能够使用一种简单的建模方式来完成组态和编程工作,提高OT工程师的工作效率。基于组件的模型适合云端 Docker微服务,嵌入式设备,边缘服务器,HMI 显示,手机,PC 等各种设备和容器中运行。

   

以上是关于高观点下的IEC61499 功能块的主要内容,如果未能解决你的问题,请参考以下文章

是否有使用 OPA UA 传输数据的 IEC 61131 / IEC 61499 PLC 功能块?

实时IEC61499漫谈-实时功能块,运行时和OS

PLCopen 运动控制功能块在IEC61499 中的实现

基于FPGA 的PLC 梯形图/IEC61499 功能块硬件实现

构建OPC UA 可执行模型

构建OPC UA 可执行模型