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 等各种设备和容器中运行。

高观点下的IEC61499 功能块相关推荐

  1. ​卜东波研究员:高观点下的少儿计算思维

    2018年的一天,我给同事包云岗打了个电话,说:"孩子们上二年级了,能否在轻松.活泼的氛围下,引导孩子们学一些数学思维呢?"云岗很赞同,我们就一起组织了一个小SIGMA数学特别兴趣 ...

  2. 高观点下的数学:自然数

    一直以来,可能我们绝大多数人都没有对自然数产生过疑问,自我们会说话起,长辈就教我们数数,1.2.3--直至上了小学,开始真正的学数学开始,也没有去思考与自然书有关的基础性质.在整个求学过程中,我们从自 ...

  3. 高观点下的高等数学(数学分析、线性代数)

    1. 极限 limx→plimx→plimx→plimx→p(f(x)+g(x))(f(x)−g(x))(f(x)⋅g(x))(f(x)/g(x))====limx→pf(x)+limx→pg(x)l ...

  4. PRML第九章读书笔记——Mixture Models and EM K均值/K中心点、高斯混合奇异性、EM观点下的高斯混合/K-means/混合伯努利分布/贝叶斯线性回归、推广EM算法

    目录 9.1 K-means Clustering P429 K中心点算法K-medoids 9.2 Mixtures of Gaussians P433 高斯混合的奇异性 9.3 An Altern ...

  5. 解决VS在高DPI下设计出的Winform程序界面变形问题

    解决VS在高DPI下设计出的Winform程序界面变形问题 参考文章: (1)解决VS在高DPI下设计出的Winform程序界面变形问题 (2)https://www.cnblogs.com/BenP ...

  6. 成功解决ThinkPad T14 高负载下CPU降频问题

    本人机器是ThinkPad T14 , CPU是 Intel i5-10210U,随着气温的升高,发现机器越来越卡,特别是在运行大型软件和处理大型文档的时候,看了下任务管理器,高负载时CPU不仅没有睿 ...

  7. 夫兵形象水,水之行避高趋下,兵之形避实击虚;水因地制流,兵因故制胜。故兵无常势水无常形。能因敌变化取胜者谓之神。

    因敌变化取胜者谓之神 OSW 2006-04-23 阅读次数:27 孙子兵法有云:夫兵形象水,水之行避高趋下,兵之形避实击虚:水因地制流,兵因故制胜.故兵无常势水无常形.能因敌变化取胜者谓之神. 市场 ...

  8. 压缩比13为什么建议用92的油_马自达为啥能在13:1高压缩比下仍然使用92汽油

    要说清楚马自达Skyactiv G发动机为啥能在高压缩比下仍然使用92汽油,我们先要了解两个概念:爆震和辛烷值. 一.爆震 爆震是点燃式发动机(通常说的汽油机)特有的一种不正常燃烧现象,简单说,点燃式 ...

  9. 解决奔腾处理器在tensorflow高版本下报动态链接库(DLL)初始化例程失败

    解决奔腾处理器在tensorflow高版本下报动态链接库(DLL)初始化例程失败 tensorflow高版本(1.5以上)官方貌似只支持AVX2指令集的cpu使用(tensorflow-gpu版本也是 ...

最新文章

  1. ecs安装tomcat和mysql_centos(Linux)系统阿里云ECS搭建 jdk,tomcat和MySQL环境,并部署web程序...
  2. 通俗讲解操作系统的中断
  3. 用matlab解公式,怎么用matlab解这个公式A MATLAB script that solves the differential e
  4. python语言开发的软件有哪些-最适合人工智能开发的5种编程语言,你知道几种?...
  5. 各类神经网络知识收集
  6. 安装SQL Server2008错误解决方案
  7. 为了上班摸鱼,我用Python开发“BOSS来了”!
  8. android studio打包纯H5项目(集成5+SDK)
  9. 单词接龙(洛谷-P1019)
  10. fastjson的常用用法以及自定义排序
  11. devops的重要性_为什么反馈而不是指标对DevOps至关重要
  12. UI设计素材|汉堡按钮/菜单
  13. 笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!
  14. 打造机器人:为遥控小车加一个树莓派
  15. textfield设置一键删除
  16. excel教程自学网_超实用!良心推荐15个神级自学网站,内容全面质量又高
  17. 音视频学习(三)——sip协议
  18. 【项目】出库流程记录
  19. 用matlab批量修改图片名称
  20. 【SSH系列】---Hibernate的基本映射

热门文章

  1. Win10 渗透工具包
  2. ERROR: Command errored
  3. 五 根据用户名和手机号进行查询操作
  4. Win11通过注册表修改文件默认打开方式
  5. HTML5和CSS3开发第九章课后作业
  6. 领域驱动设计的实践 – CQRS Event Sourcing
  7. SQL server如何导入数据库.MDF文件
  8. dwg文件的编辑方法有哪些
  9. 马士兵Python基础版2020教程P1-P57 PPT笔记+课堂代码
  10. Cglib和jdk动态代理