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 带来了灵活性。两者的结合降低了开发工业自动化软件的复杂性。
技术特点
- 利用OPCUA 构建信息模型
- Sqlite3 历史数据库
- 模型自动载入
- 利用IEC61499 功能块构建动态执行组件
- OPCUA 封装IEC61499 模型
- 支持动态功能块,复合功能块,功能块网络,适配器动态载入
- OPCUA Pub/Sub 实现设备间通信
- 支持tsn实时网络
- 模型与开发环境IDE分离
- 支持设备端控制协议OPCUA Client,modbusTCP,Profinet,EtherCAT,IO-link协议
- 在各种智能设备,云平台,边缘设备上运行。
系统架构
下图是以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 针对不同的应用场景提供了两种通信机制:
- 客户端/服务器模型(Client/Server)
- 发布者-订阅者模型(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 模型的任务包括下面几个部分:
- 使用OPC UA信息模型封装IEC61499 功能块类型
- 使用OPC UA 信息模型封装IECIEC61499 功能块网络
- 使用OPC UA 封装IEC61499 系统,资源的信息模型
- IEC61499 功能块OPC 模型
单从IEC61499 的外部封装来看,IEC61499功能块包括了事件的输入,事件的输出,数据的输入和数据的输出。它们完全可以使用OPC UA 信息模型来封装。下图是一个简单Inv功能块的OPC UA 模型封装示意图。
IEC61499 功能块网络的OPC UA模型
IEC614999 的应用是功能块网络。功能块网络是功能块实例通过连接(connection)构成的。在OPC UA信息模型中,connection 对应于reference。我们可以使用hasConnection来作为功能块的连接。
功能块与信息模型的接口
IEC61499 应用程序通过一组功能块存取OPCUA 信息模型
- UA_Read
- UA_Write
- UA_Condition
- 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的应用
- OPCUA 网关
- 设备、仪表的数字化模型
- OPCUA 数据聚合服务器
- OPCUA 实时数据库
- 物联网应用
- 基于OPCUA 的工厂互联
- 设备和能效数据采集
- OPCUA HMI智能屏
- 数据存储,分析和可视化
UAPlus 的运行平台
操作系统
UAPlus 在linuxOS 上运行。
硬件
根据系统对算力需求的不同,可以选择X86,ARM,RISC-V 等处理器架构的硬件控制器。
目前支持的硬件控制器
- UAPlus-6 系列控制器
基于NXP I.MX6 处理器的32bitARM控制器,
- UAPlus-8 系列控制器
基于NXP I.MX8 处理器的64bit控制器
- UP6000控制器
基于Intel Atom6000 处理器控制器
I/O 模块与现场总线
现在,标准化的小型PLC,远程IO模块和IO-Link 等设备已经相当成熟,接口模块种类繁多,价格低廉。遵循“不重复建造轮子”的原则,没有必要设计控制器与IO模块一体化的硬件产品,UAPlus主张控制器与IO模块解耦。通过标准的现场总线与传统的PLC,远程IO模块和IO-Link 设备连接。目前支持的工业现场总线包括:
- modbusTCP
- EtherCAT
- Ether/IP
- Profinet
- IO-Link
结束语
OPC UA 将成为工业自动化领域的“HTML” 语言,IEC61499 作OPCUA 伴随的脚本语言,将会给开放自动化,边缘计算带来强大的活力。为此,我们在不断地研究与实验,目前该项目已经设计完成,进一步测试中。