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 的核心概念是基于事件的功能块。基于这种功能块能够实现基于组件的系统设计方法。每个系统应用都能够使用功能块网络呈现。而且功能块网络中的功能块能够部署到分布式系统中的各个设备中。

功能块

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

功能块网络

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

部署

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 模型封装示意图。

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 伴随的脚本语言,将会给开放自动化,边缘计算带来强大的活力。为此,我们在不断地研究与实验,目前该项目已经设计完成,进一步测试中。

相关推荐
m0_748257185 分钟前
Spring Boot FileUpLoad and Interceptor(文件上传和拦截器,Web入门知识)
前端·spring boot·后端
桃园码工23 分钟前
15_HTML5 表单属性 --[HTML5 API 学习之旅]
前端·html5·表单属性
百万蹄蹄向前冲1 小时前
2024不一样的VUE3期末考查
前端·javascript·程序员
轻口味1 小时前
【每日学点鸿蒙知识】AVCodec、SmartPerf工具、web组件加载、监听键盘的显示隐藏、Asset Store Kit
前端·华为·harmonyos
alikami1 小时前
【若依】用 post 请求传 json 格式的数据下载文件
前端·javascript·json
吃杠碰小鸡2 小时前
lodash常用函数
前端·javascript
emoji1111112 小时前
前端对页面数据进行缓存
开发语言·前端·javascript
泰伦闲鱼2 小时前
nestjs:GET REQUEST 缓存问题
服务器·前端·缓存·node.js·nestjs
m0_748250032 小时前
Web 第一次作业 初探html 使用VSCode工具开发
前端·html
一个处女座的程序猿O(∩_∩)O2 小时前
vue3 如何使用 mounted
前端·javascript·vue.js