OPC UA:工业领域的“HTML”

        OPC  UA是工业自动化领域的一项重要的通信协议。它的特点是包括了信息模型构建方法。能够建立工业领域各种事物的信息模型。在工业自动化行业,OPCUA 类似互联网行业的HTTP协议和“HTML”语言。能够准确,可靠地描述复杂系统中各个元素,并且实现系统组件之间的互联互通。

        HTML语言能够描述复杂的网页,使用浏览器能够浏览所有基于HTML 的网站,在HTML 语言的发展早期,它只能描述静态网页。美国网景公司(Netscape)率先在其浏览器中导入了JavaScript网页脚本语言。使网页具备了强大的交互能力和信息处理能力。现代HTML5就包括了HTML、CSS和JavaScript三个要素。

     传统的工业领域中,不同厂商的控制设备与上位机的通信协议都不尽相同,几乎每个设备都带有一个组态软件。为了提高系统的兼容性,提高工程效率,工业自动化领域同样需要类似互联网行业 HTML /JavaScript 的统一描述语言和HTTP 协议。OPC UA就是为这个目标而实现的。

        OPCUA 同样具备强大的建模能力,但是与HTML类似,它构建的模型是静态,被动的。需要通过其它程序才能够处理这些模型。它同样需要一种模型处理的脚本语言来增强OPCUA 动态组件的建模。IEC61499 是这种“脚本语言”的最佳选择。

         IEC61499 是分布式控制系统的系统级建模语言。IEC61499 的核心是基于事件的功能块。可以使用OP CUA 封装事件功能块模型,OPCUA 应用软件中嵌入IEC61499 运行时,动态执行功能块网络。两种重要的工业自动化标准相结合,涌现成强大的系统功能。在工业自动化系统中,OPCUA 和IEC61499 的完美结合,能够发挥互联网行业HTML/Javascript组合同样的威力。

  基于上述理念,我们开发了一个实验系统-UAPlus

        UAPlus是开发的开放自动控制系统的软件平台,实现OPC UA与IEC61499 融合。结合时间敏感网络,工业现场连接技术的创新型软件平台,UAPlus成为开放自动化系统的技术平台,UAPlus 的结构示意图。 

开放性与灵活性

开放性(Openess )

      OPC UA是工业自动化领域的一项重要的通信协议。它是一种基于信息模型的通信方式。当一个信息系统中都采用了OPC UA通信协议之后,组件之间能够以模型中的对象,变量,方法和事件来相互交换信息,它将是工业4,0 技术的重要组成部分。

  目前,越来越多的设备和软件都支持OPCUA 通信协议和信息模型,它们包括PLC,DCS 设备和MES,EPR,数字孪生,仿真,HMI和云服务都支持OPCUA 协议。自动化系统采用统一的接口,提升了自动化系统的开放性。支持OPCUA 协议的设备能够快捷地互联互通和互操作。

灵活性(adapability)

                OPCUA应用软件是基于商业版本或者开源版本的OPCUA SDK 库(例如 open62541)实现的。OPCUA 是一个相对比较复杂的标准,即便有了SDK ,软件开发者仍然需要了解大量OPCUA 规范的技术细节。这是影响OPCUA 推广应用的主要障碍之一。

        UA Plus的设计理念是通过OPC UA 与IEC61499 相结合,将OPCUA 模型操作和服务使用IEC61499 功能块实现。从而使OPCUA 应用系统的开发摆脱了OPC UA 的技术细节。而重点关注应用本身。IEC61499 中的功能块,复合功能块,适配器等元素更加适合面向对象程序设计技术的实现,而面向对象的思想是模块化设计的基础。带来了自动化系统开发的灵活性。

        OPC UA 带来了开放性,而IEC61499 带来了灵活性。两者的结合降低了开发工业自动化软件的复杂性。

技术特点

  1. 利用OPCUA 构建信息模型
  2. Sqlite3 历史数据库
  3. 模型自动载入
  4. 利用IEC61499 功能块构建动态执行组件
  5. OPCUA 封装IEC61499 模型
  6. 支持动态功能块,复合功能块,功能块网络,适配器动态载入
  7. OPCUA Pub/Sub 实现设备间通信
  8. 支持tsn实时网络
  9. 模型与开发环境IDE分离
  10. 支持设备端控制协议OPCUA Client,modbusTCP,Profinet,EtherCAT,IO-link协议
  11. 在各种智能设备,云平台,边缘设备上运行。

系统架构

        下图是以UAPlus构建的分布式系统。设备之间使用OPCUA 协议Client/Server和Publish/Subscribe 互联,控制程序使用IEC61499 功能块和功能块网络编排,通过UAPlus内置的运行时执行。

OPC UA 协议与信息模型

        OPC统一架构(OPC UA)是由OPC基金会创建的从传感器到云应用程序的数据交换标准,旨在满足几个领先行业不断增长的计算机化需求。OPC代表开放平台通信,创建了一个OPC服务器,它允许将来自多个来源的信息转换为客户端,提供可以有效使用的访问数据。这种在多个平台和设备之间轻松传输信息的能力被称为OPC UA标准,它被广泛认为是通信的工具资源。此外,OPC UA标准可确保数据访问的集成,一致,可靠且可安全访问。

        UAPlus以OPC UA 为中心构建, OPC统一架构(OPC UA)是一种用于工业自动化的机器对机器通信协议,由OPC基金会开发。实现工业的互操作性,设备和机器制造商以面向对象的方式构建产品的信息模型。大量工业软件和云平台提供了OPCUA 接口,具备访问OPCUA 服务器的能力。OPC UA简化了工业连接,

为了实现数据交换,OPCUA 针对不同的应用场景提供了两种通信机制:

  1. 客户端/服务器模型(Client/Server)
  2. 发布者-订阅者模型(Pub/Sub)

   如果不同的设备制造商能够达成一致,所有相同的设备都具备相同的数据和服务·。那么·这些设备·将会很容易集成到系统中。为此,OPC 基金会和众多的合作伙伴制定了标准化的行业配套规范(companion specifications)。诸如BACnet ,CNC,PackML,PLCopen,Robotics等诸多行业的规范。

   工业4.0 的诸多标准都是在OPC UA 基础之上构建的。这也是OAP 以OPCUA 为主构建的主要原因,这意味着UAPlus平台上,能够进一步构建符合各种行业标准的接口,实现各种设备和软件的互联互通和即插即用。

IEC61499 功能块

        IEC 61499定义了在分布式工业过程测量和控制系统 (IPMCS) 中使用功能块的架构。该架构包括可实现的参考模型、文本语法和图形表示。IEC61499 的核心概念是基于事件的功能块。基于这种功能块能够实现基于组件的系统设计方法。每个系统应用都能够使用功能块网络呈现。而且功能块网络中的功能块能够部署到分布式系统中的各个设备中。

功能块

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

https://img-blog.csdnimg.cn/img_convert/3cff5a1c2486665cc33ba1917231f789.png

功能块网络

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

https://img-blog.csdnimg.cn/img_convert/97fd024f0e1edfbf328cc7d2898675aa.png

部署

https://img-blog.csdnimg.cn/img_convert/086b7cc7ed51325155fa996793a18b07.png

OPCUA 封装IEC61499 模型

OPC UA是工业自动化领域的一项重要的通信协议。它是一种基于信息模型构建的。当一个信息系统中都采用了OPC UA通信协议之后,组件之间能够以模型中的对象,变量,方法和事件来相互交换信息。它将是工业4,0 技术的重要组成部分。

     IEC61499是分布式控制系统建模标准,它的核心是基于事件的功能块。是被人们看好的一项开放自动化领域的技术标准。

        这两项技术们都是一种建模的方法,OPC UA 侧重于信息交换的信息模型,关注设备之间的互联互通,数据交换。而IEC61499 侧重于分布式控制测量系统执行组件的建模。关注程序的执行。所以也有人将IEC61499称为分布式自动化的可执行建模语言。它们之间的互补性非常大。另一方面,它们都是基于面向对象程序设计的思想,它们的方法,概念和术语具有相似性。

   两种侧重点不同的建模技术相结合,将会涌现出更加强大的系统功能。IEC61499 事件功能块网络实现了OPCUA 的分布式系统模型控制流建模。OPC UA 的状态机和方法调用只能实现高层的控制流,而方法的算法仍然需要借助于其它程序设计语言来编写,例如IEC61131-3语言。OPCUA与IEC61499 相结合,能够直接使用IEC61499 功能块网络来描述算法。

 

    

        OPCUA 与IEC61499 相结合的方法是使用OPCUA 信息模型来封装IEC61499 的功能块,功能块连接和功能块网络模型。原先的IEC61499 运行时通过调用OPCUA 的信息模型来存储和访问功能块数据,并且解释执行功能块网络的执行。通过OPCUA 的Pub/Sub和Client、Server 协议实现分布式设备中功能块之间的事件和数据通信。

IEC61499 模型融入OPCUA 带来的好处在于:

  • 增强了OPCUA 的执行组件的建模能力。在OPC UA 平台上,能够构建IEC61499 的功能块。并且在内部嵌入了IEC61499 运行时。
  • 统一使用OPC UA 信息模型构建模型,避免OT工程师额外学习IEC-61499 的模型。降低了IEC61499 的学习曲线。
  • 统一采用OPC UA 的协议和数据类型,可以借助OPC UA 的设计工具。更好融入以OPC UA 为基础的工业4.0 体系。与其它工业软件互联。
  • 弥补了OPC UA 算法描述能力的不足,提供了构建基于OPCUA 信息模型的分布式控制系统的方法。
  • 以IEC-61499 的方式构建OPC UA 的算法库,模型库。以及逻辑执行模型。

使用OPC UA 信息模型构建IEC61499 模型的任务包括下面几个部分:

  1. 使用OPC UA信息模型封装IEC61499 功能块类型
  2. 使用OPC UA 信息模型封装IECIEC61499 功能块网络
  3. 使用OPC UA 封装IEC61499 系统,资源的信息模型
  4. IEC61499 功能块OPC 模型

    单从IEC61499 的外部封装来看,IEC61499功能块包括了事件的输入,事件的输出,数据的输入和数据的输出。它们完全可以使用OPC UA 信息模型来封装。下图是一个简单Inv功能块的OPC UA 模型封装示意图。

 https://img-blog.csdnimg.cn/3436b42784e84fd19bbf037eddb26b65.png

IEC61499 功能块网络的OPC UA模型

        IEC614999 的应用是功能块网络。功能块网络是功能块实例通过连接(connection)构成的。在OPC UA信息模型中,connection 对应于reference。我们可以使用hasConnection来作为功能块的连接。

   功能块与信息模型的接口

IEC61499 应用程序通过一组功能块存取OPCUA 信息模型

  1. UA_Read
  2. UA_Write
  3. UA_Condition
  4. UA_Method

开发流程

        在UAPlus平台上,所有的模型都是基于OPCUA 信息模型构建,使用Nodeset2.xml 文档描述,并且通过LoadXML 方法动态地下载到UAPlus 的运行时中运行。

        传统的自动化组态工具大多数是基于图形方式设计的。由于行业应用的特点,各个行业的组态工具的图形各不相同,比如PLC 中的梯形图,IEC61499 中的功能块网络,建筑自动化中的图形以及过程控制领域的P&ID,测量仪器应用中的LabView,数字仿真中的Simulink 中都具有各自基于图形的组态方式。通常,这些专用的图形化组态工具与厂商设备是紧耦合。

         UAPlus 主张底层采纳OPC UA 的NodeSet.xml 描述。所有专业的IDE 导出的文档通过一组转换程序转换成NodeSet2 文档。例如,将IEC61499 开发环境IDE 导出的FB.sys 文档转换成为NodeSet2 文档。

        基于这种观点,开发工具与设备,应用和厂商解耦。面向各种应用场景的领域语言(DSL) 能够转换成OPC UA 的NodeSet2 文档。随着AI技术的成熟,领域语言(DSL)将更加自然语言化。自动化组态技术将更多地由软件自动生成。

        这是一个令人兴奋的系统架构,它意味着能够为各个专业领域应用设计组态工具,它们可能采纳不同的图形符号和表达方式,最终可以通过转换工具转换成为统一的OPC UA 模型。下面是将行为树转换成功能块网络和OPCUA 信息模型的例子。

        在UAPlus平台上,能够构建工业控制,智能制造,智能仪表测量,离散过程控制,过程控制,建筑自动化等各个领域的应用。

转换工具及流程

 

IEC61499Converter

将4diac 设计IEC61499 功能块和应用程序转换成为uaModelDesign.xml 文档。

uaModelCompiller

将uaModelDesign.xml 转换成为OPCUA模型文件nodeset2.xml。

uaPlus

UAPlus 导入各种nodeset2.xml文档。

        其它各种应用模型开发工具,能够充分利用IEC61499 功能块建模方式构建基于组件的系统模型,导出ModelDesign.xml 或者Nodeset2.xml 文档,最终导入UAPlus运行时。

UAPlus的应用

  1. OPCUA 网关
  2. 设备、仪表的数字化模型
  3. OPCUA 数据聚合服务器
  4. OPCUA 实时数据库
  5. 物联网应用
  6. 基于OPCUA 的工厂互联
  7. 设备和能效数据采集
  8. OPCUA HMI智能屏
  9. 数据存储,分析和可视化

UAPlus 的运行平台

操作系统

UAPlus 在linuxOS 上运行。

硬件

根据系统对算力需求的不同,可以选择X86,ARM,RISC-V 等处理器架构的硬件控制器。

目前支持的硬件控制器

  1. UAPlus-6 系列控制器

基于NXP I.MX6 处理器的32bitARM控制器,

  1. UAPlus-8 系列控制器

基于NXP I.MX8 处理器的64bit控制器

  1. UP6000控制器

基于Intel Atom6000 处理器控制器

I/O 模块与现场总线

现在,标准化的小型PLC,远程IO模块和IO-Link 等设备已经相当成熟,接口模块种类繁多,价格低廉。遵循“不重复建造轮子”的原则,没有必要设计控制器与IO模块一体化的硬件产品,UAPlus主张控制器与IO模块解耦。通过标准的现场总线与传统的PLC,远程IO模块和IO-Link 设备连接。目前支持的工业现场总线包括:

  1. modbusTCP
  2. EtherCAT
  3. Ether/IP
  4. Profinet
  5. IO-Link

结束语

OPC UA 将成为工业自动化领域的“HTML” 语言,IEC61499 作OPCUA  伴随的脚本语言,将会给开放自动化,边缘计算带来强大的活力。为此,我们在不断地研究与实验,目前该项目已经设计完成,进一步测试中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/117792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习中常见的特征工程处理

一、特征工程 特征工程(Feature Engineering)对特征进行进一步分析,并对数据进行处理。 常见的特征工程包括:异常值处理、缺失值处理、数据分桶、特征处理、特征构造、特征筛选及降维等。 1、异常值处理 具体实现 from scipy.s…

桶装水订水送水小程序开发搭建;

上门送水小程序桶装水配送是一款的同城上门配送平台,为用户提供便捷的桶装水配送服务。解决用户在获取干净健康的饮用水方面的需求,提供高效、便捷的在线预约和下单服务。 小程序平台开发,具备强大的技术支持和良好的用户体验。用户可以通过…

跨平台开发技术

目录 1.Qt1.简介2.优势3.劣势 2.NET CoreVue1.简介2.优点 3.Flutter1.简介2.优点3.缺点 4.Maui1.简介2.优点3.缺点 5.Avalonia1.简介2.优点3.缺点 6. Cordova1.简介2.优点3.缺点 7.Electron1.简介2.优点3.缺点 个人搜集资料并总结了一些跨平台开发技术,如有不足欢迎…

分享一下怎么做一个房间预定链接

在旅游行业中,房间预定是非常重要的一环。随着互联网的普及和旅游业的发展,越来越多的人选择在网上预订房间。本文将介绍如何制作一个房间预定链接,以及推广该链接的方法和策略,帮助读者更好地了解房间预定的需求和实现方式。 一、…

隧道代理 vs 普通代理:哪种更适合您的爬虫应用?

前言 随着互联网的普及,爬虫技术在多个领域得到广泛应用。在进行爬虫开发时,代理服务器是不可或缺的工具之一。代理服务器可以隐藏客户端的真实 IP 地址和位置,从而保护客户端的隐私,同时通过代理可以绕过一些网络限制和安全机制…

什么是React中的高阶组件(Higher Order Component,HOC)?它的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

迅为itop-3568开发板qt学习手册上新

基于RK3568的QT教程他来了~从C基础到QT编程实例再到项目实战,《iTOP-3568开发板QT学习手册》带你打通QT的任督二脉。 界面布局 3.5.1 水平布局 l Horizontal Layout:水平方向布局,组件自动在水平方向上分布 使用时先选中组件&#xff0…

设计模式中的黄金原则:引领你的代码风格,提升可维护性与扩展性

中国的先贤说过: 有道无术,术可求.有术无道,止于术. 术指的是技能、技术或方法,而道指的是原则、道德、智慧和理念。 西方古代的哲人也说过同样的话: 智慧之路从感性开始,却终极于理性.为什么要说设计原则呢, 因为设计模式通常需要遵循一些设计原则&…

Ant-Design-Pro-V5 :QueryFilter高级筛选组件、Table以及Pagination组件结合实现查询。

需求:根据 分类条件选择不同类型, table表格调取不同接口,展示不同数据。 代码: import React, { useRef, useState, Fragment, useEffect } from react; import { getNoticeInfo, getBannerList, delNotice } from ./service; …

windows系统ntp服务器一键开启

脚本 echo off REM 自动判断权限问题,主动获取管理员权限 echo off >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" if %errorlevel% NEQ 0 ( goto UACPrompt ) else ( goto gotAdmin ) …

探索随机森林: 机器学习中的集成学习神器

机器学习 第七课 随机森林 概述机器学习机器学习的主要分类监督学习无监督学习强化学习 集成学习提高准确性增强稳定性提升泛化能力 集成学习的主要方法BaggingBoostingStacking 随机森林的理论基础决策树的基本原理随机森林的生成过程随机森林的优势与局限性 随机森林的实际应…

vue2.0项目中组件和iframe之间如何传值

vue2.0项目中组件和iframe之间如何传值 一、vue组件二、iframe组件 一、vue组件 mounted() {// 注册 message 事件监听器,只注册一次window.addEventListener(message, this.handleFromIframeMessage) }, beforeDestroy() {// 移除事件监听器window.removeEventList…

C#实现数据导出任一Word图表的通用呈现方法及一些体会

疲惫的修改 应人才测评产品的需求,导出测评报告是其中一个重要的环节,报告的文件类型也多种多样,其中WORD输出也扮演了一个重要的角色。 实现方法比较简单,结合分析结果数据,通过WORD模板文件进行替换输出。在实现的…

关于报错java.util.ConcurrentModificationException: null的源码分析和解决

一般有这种问题,方法中至少会有List或者Map下的至少两个子类,有可能参数类型相同,也有可能不同都有可能触发这个问题!其主要原因是使用了ArrayList进行删除操作或者使用iterator遍历集合的同时对集合进行修改都有可能会出现这个问题 ArrayList属于List下的子类 需要区分的是Li…

qt的一些自绘控件

https://download.csdn.net/download/venice0708/88469835

嵌入式Linux_学习路线+基础知识

嵌入式Linux_学习路线基础知识 一、学习路线 说明:u-boot是一大块学起来需要三到六个月比较耗时,也属于比较落后的知识点,所以暂时不学习,内核也是如此暂时不学习,从应用层入手,先入门再深入 二、Shell指令…

MongoDB 的集群架构与设计

一、前言 MongoDB 有三种集群架构模式,分别为主从复制(Master-Slaver)、副本集(Replica Set)和分片(Sharding)模式。 Master-Slaver 是一种主从复制的模式,目前已经不推荐使用。Re…

ARM | 传感器必要总线IIC

IIC总线介绍 1.谈谈你对IIC总线理解? 1)IIC总线是串行半双工同步总线,主要用于连接整体电路 2)SCL/SDA作用:IIC是两线制,一根是时钟线SCK,用于控制什么时候进行进行数据传输,时钟信号由主机发出; 另一根是数据线SDA,用于进行数据传输,可以从…

C# Winform编程(9)网络编程

网络编程 HTTP网络编程IPAddress IP地址类WebClient类WebRequest类和WebResponse类 WebBrowser网页浏览器控件TCP网络编程TcpClient类TcpListener类NetworkStream类Socket类 HTTP网络编程 IPAddress IP地址类 IPAddress类代表IP地址,可在十进制表示法和实际的整数…

N——>BatchSize 数据维度理解和处理(chun, cat, squeeze, unsqueeze)

数据处理之N——>BatchSize N——>batch_size train_data TensorDataset(torch.Tensor(x_train).double(), torch.Tensor(y_train).double()) train_loader DataLoader(train_data, batch_sizeargs.bs, shuffleTrue, drop_lastTrue) for batch_idx, (inputs, results…