高观点下的IEC61499 功能块

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

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

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

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

IEC61499 技术背景

功能块

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

功能块网络

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

部署

适配器

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

 在使用Adapter 连接的两个功能块中,分别呈现为两个功能块

我们可以看出,这两个功能块是将Adapter一掰两瓣。

 Socket 部分从左到右发送事件和数据,而Plug 从右到左发送数据,可以理解Adapter 是一个可以双向传送事件和数据的功能块。当然,如果做的比较复杂的化,需要Adapter 内部的服务序列图来描述。

 我们也可以使用类似硬件电路图的方式来理解Adapter 的执行过程。

Socket 向Plug 发起交换数据:

 Plug发起向Socket 传递数据:

高观点下的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 中,通信服务功能块是需要人工额外添加的。

例子:我们建立了一个TcpIp 适配器

 复合功能块CompositeFB 上有一个TcpIp 的Socket和Plug

两个CompositeFB 通过TcpIp Adapter 连接

我们可以看到,Adapter的Socket和Plug 与TCP Client和TCP Server 功能块长得很像

由此看来,Adapter 扩展到网络连接是可能的。 

 试验方案

     我们正在开发一个基于组件的分布式控制系统的建模工具(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 等各种设备和容器中运行。

   

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值