计算机系统应用  2021, Vol. 30 Issue (8): 96-103   PDF    
图形化在线建模的OPC UA网关设计
苏鑫1, 李军怀1, 王怀军1, 张发存1, 崔颖安1, 冯连强2     
1. 西安理工大学 计算机科学与工程学院, 西安 710048;
2. 中国重型机械研究院股份公司, 西安 710032
摘要:OPC统一架构(Unified Architecture, UA)已经成为工业4.0的核心通信接口规范, 但由于工业领域设备更新缓慢, 大量现场设备仍使用传统的通信协议, 且设备生产厂家不同, 使用的通信协议也可能不同. 为了将不同类型的现场设备融入OPC UA架构, 克服多种通信协议之间的数据交换壁垒, 本文设计了一种支持图形化在线建模的OPC UA网关. 网关内部实现了OPC UA服务器, 能够将多种通信协议数据连接到OPC UA服务器地址空间的节点上, 方便MES和ERP等管理软件进行高效数据访问. 同时, 为了便于使用者建立OPC UA信息模型以及配置网关数据采集逻辑, 设计了一种图形化建模方法. 最后, 本文通过示例, 验证了图形化在线建模网关的可用性.
关键词: OPC UA    数据采集    信息模型    图形化建模    协议转换    
Design of OPC UA Gateway Based on Graphical Online Modeling
SU Xin1, LI Jun-Huai1, WANG Huai-Jun1, ZHANG Fa-Cun1, CUI Ying-An1, FENG Lian-Qiang2     
1. School of Computer Science and Engineering, Xi’an University of Technology, Xi’an 710048, China;
2. China National Heavy Machinery Research Institute Co. Ltd., Xi’an 710032, China
Foundation item: National Key Research and Development Program of China (2018YFB1703000); National Natural Science Foundation of China (61971347); Fund of Water Resources Bureau, Shaanxi Province (2020slkj-17); Research Foundation of the State Key Laboratory of Eco-hydraulics in Northwest China (2019KJCXTD-6); Science and Technology Program of Xi’an Municipality (2020KJRC0093)
Abstract: OPC Unified Architecture (UA) has become the core communication interface specification in Industry 4.0. However, due to the slow update of equipment in the industrial field, the traditional communication protocol is still used by a large number of field devices, and distinct communication protocols may be adopted by different equipment manufacturers. An OPC UA gateway is designed to integrate different types of field devices into OPC UA architecture, and it can break the data exchange barriers between communication protocols. An OPC UA server is implemented in the gateway, which can connect communication protocol data to the nodes in address space of the server. The OPC UA server also enables MES and ERP management software to access data efficiently. At the same time, a graphical modeling method is designed to assist users in establishing an OPC UA information model and configuring gateway data acquisition logic. Finally, an example is given to verify the usability of the gateway for graphical online modeling.
Key words: OPC UA     Data acquisition     information model     graphical modeling     protocol conversion    

1 引言

我国制造业发展时间较短, 存在着信息化、自动化和智能化程度不高的问题, 在传统制造业向智能制造转型升级的过程中, 制造环节装备通信协议与数据的异构导致的互联互通等制约智能制造发展的关键问题仍然没有解决. 工业现场底层设备种类繁多, 不同的通信协议使得数据采集和通信系统的统一成为难题, 直接影响车间的统一管理[1]. 且由于缺乏统一的数控信息模型标准, 设备间数据的异构同时导致了语义上不能互通[2]. 因此, 在工业现场设备之间建立统一规范的通信模式以及统一的语义模型对于车间数字化水平提升尤为重要.

OPC UA为不同协议的数据交换提供了一种可靠的解决方案[3]. OPC UA是一种平台无关的面向服务的体系结构, 能够实现原始数据和预处理的信息从制造层级到生产计划或ERP层级的传输[4]. OPC UA具有平台独立性, 在从嵌入式微控制器到基于云的服务器上都可以运行其全部功能. OPC UA通过会话加密、身份验证和审核跟踪等功能实现其安全性. 另外, OPC UA也是一种“面向未来”的架构, 新的传输协议、安全算法、编码标准或应用程序服务等创新技术和方法可以方便地整合到OPC UA[5].

OPC UA是OPC基金会在经典OPC规范的基础上制定的新一代工业信息接口规范. 经典OPC基于微软COM和DCOM技术, 这导致经典OPC严重依赖Windows平台, 应用场景受到了限制. OPC UA的诞生消除了经典OPC的平台依赖性, 提供了更加丰富的功能, 还增强了数据对象的建模能力. 近年来, 国内外学者积极开展对OPC UA技术研究和应用. 同济大学夏文霞等提出了一种OPC UA与时间敏感型网络(Time-Sensitive Networking, TSN)的融合技术[6], 旨在解决OPC UA与5G蜂窝网络的传输映射问题. 浙江理工大学的黄李炳等开发了基于OPC UA的数控机床联网适配器[7], 将不同品牌数控系统的数据接口统一, 方便上层SCADA、MES、ERP管理系统与底层设备组网. 德国在“阿尔法文图斯”海上风电厂并网发电项目中采用OPC UA技术在数据采集与监视控制系统(Supervisory Control And Data Acquisition, SCADA)中进行数据采集和监控. von Arnim等提出了一种能够使用现有数据结构生成OPC UA地址空间的方法[8], 使用该方法能够在OPC UA服务器运行时创建地址空间, 方便使用OPC UA规范与现有实例进行数据交换.

当前, 西门子等国外知名厂商都在其产品中支持了OPC UA服务, 但是在工业现场仍有大量的旧设备并不支持OPC UA功能, 当把OPC UA作为主要的通信架构时, 这些设备需要一种从原始通信协议到OPC UA协议的中间件来接入通信网络. 本文提出了一种图形化信息建模的OPC UA网关, 连接不同协议的设备并将这些设备的数据映射到OPC UA地址空间, 便于边缘服务器、MES和ERP等管理软件以OPC UA协议实现对数据的快速访问, 以及实现面向不同协议的设备层设备互联、异构数据的采集与数据模型的统一和不同层级语义互操作性. 同时, 提供了针对设备与数据的图形化信息建模平台, 用户通过Web页面对设备建立信息模型并定义数据映射规则, 通过网关将信息模型应用到地址空间, 简化建模过程.

2 数字化车间的OPC UA网关设计

OPC UA为工业生产制造场景提供了一种新的互联互通架构以及信息交互模型. 数字化车间中OPC UA网关对接入设备层的各类设备进行数据采集, 并将所采集数据映射到OPC UA服务器的地址空间节点. 对于边缘服务器和制造执行系统等其他车间管理系统, OPC UA网关将多种多样的复杂现场协议屏蔽, 提供统一的由OPC UA定义的通信协议.

2.1 数字化车间通信架构

基于OPC UA网关的数字化车间通信架构如图1所示. 其中, 设备层负责生产制造过程, 设备和传感器产生重要的现场级实时数据是上层系统把控生产制造过程以及进行决策的重要依据[9]. 互联层使用OPC UA网关作为中间件连接设备层设备, 互不兼容的协议被统一成OPC UA协议, 有利于现场级数据的汇聚. 同时, 设备层设备在OPC UA地址空间中形成信息模型, 实现不同设备不同层级的语义互操作性.

2.2 OPC UA网关设计

网关的结构如图1中互联层所示, 由3个模块组成: OPC UA服务器、设备层数据采集模块和Web控制台. 设备层数据采集模块集成的多种现场协议驱动对不同设备的数据节点进行采集, 数据采集任务被该模块组织成一个任务队列统一进行调度管理, 并以用户设置好的频率调用现场协议驱动程序采集设备数据. 用户通过Web控制台方便地配置设备层数据采集模块的采集任务. 各模块具体描述如下:

(1) OPC UA服务器在地址空间中建立用户所需的信息模型, 将接收的设备层数据采集模块采集的数据映射到地址空间对应节点上, 响应边缘层的数据请求命令, 在合适的时机对地址空间中的数据进行更新以保证客户端读取到最新数据.

(2)设备层数据采集模块将数据采集任务组织为任务队列并进行轮询, 当任务节点符合采集要求时将调用现场协议接口对设备数据进行采集, 并发送给OPC UA服务器. 设备层数据采集模块集成了Modbus-RTU、PROBFIBUS协议和CJ188协议等现场协议, 支持不同厂商不同协议的设备进行数据交换.

(3) Web控制台为用户提供了一个图形化的工具, 便于用户构建OPC UA地址空间中的信息模型、制定数据采集任务以及对网关进行控制. 在Web控制台, 用户构建的信息模型及制定的数据采集任务被转换成JSON格式的网关配置文件, 此后网关按照该配置文件进行工作.

图 1 基于OPC UA网关的数字化车间通信架构

网关工作流程如图2所示. 设备层数据采集模块中任务节点符合数据采集条件时, 使用数据请求命令获取现场设备的数据并将数据映射到OPC UA服务器中地址空间节点上. 当边缘服务器向OPC UA服务器请求数据时, OPC UA服务器为其提供数据.

图 2 网关工作流程

3 网关关键模块设计与实现

OPC UA网关关键模块包括设备层数据采集模块、OPC UA服务器以及Web控制台提供的图形化建模工具.

3.1 设备层数据采集

网关所连接的设备使用的接口类型与通信协议可能不同. 另外, 部分工业数据采集系统对数据传输具有确定性要求, 例如在确定的限制时间之内完成可靠的数据通信[10]. 因此, 本文为使数据能够及时准确地提供给用户或上层调用, 设计了用于数据采集的任务轮询机制. 该部分程序使用独立的线程执行, 核心是一个任务队列. 网关在启动后自动解析配置文件, 并根据配置文件的信息生成任务队列, 在任务队列的每个节点中存放了被采数据的采集频率和数据来源地址等信息. 任务轮询机制将定时查询任务队列中的任务节点, 若存在等待被执行的任务就会调用相关的数据采集函数进行数据采集. 设备层数据采集模块结构如图3所示.

设备层包含仪表仪器、传感器和执行器等设备, 不同厂家生产的设备一般使用不同的现场总线协议, 目前常用的现场总线有几十种. 设备层数据采集模块提供一种具有灵活性、可扩展性以及通用性的数据采集接口, 以适配不同的现场总线协议.

图 3 设备层数据采集模块结构

3.1.1 数据采集接口

任务队列节点记录了数据采集任务的详细信息, 主要包括数据采集接口函数以及与协议相关的配置信息. 任务节点成员信息如表1所示.

其中成员ProtocolInterface是数据采集接口函数指针, 当网关解析配置文件并生成任务节点时会根据总线协议类型为此指针赋予对应的数据采集接口函数地址. 成员protocolInfo是指向协议配置信息结构体的指针, 数据采集接口函数根据此结构体提供的信息对总线配置. data用于储存采集到的数据.

表 1 任务节点成员

函数指针ProtocolInterface是数据采集接口具备通用性和可扩展性的关键, 其函数签名为void ProtocolInterface(void *protocolInfo, void **data). 统一的接口设计规范方便匹配不同的现场协议接口函数, 不同接口函数在实际调用时才将配置信息结构体进行类型强制转换. 使得符合这一设计规范的数据采集接口函数都允许通过该指针被统一调用, 实现了数据采集接口的通用性和可扩展性.

3.1.2 Modbus协议接入数据采集接口

下面以Modbus-RTU协议为例说明底层协议接入数据采集接口的过程. Modbus是一种采用主从架构的串行通信协议, 已成为工业领域通信协议的业界标准之一, 目前大多数计量仪表都具有RS485通讯接口, 支持Modbus通讯协议[11].

配置信息结构体ModbusInfoStruct定义了完成一次Modbus数据采集所需要的全部信息, 结构体成员信息如表2所示.

表 2 配置信息结构体成员

设备通过Modbus协议接入网关进行数据采集的主要过程如下:

(1)网关在生成Modbus协议数据采集的任务节点时会为成员指针变量protocolInfo申请内存, 强制转换为ModbusInfoStruct类型的指针后为各成员赋值;

(2) Modbus数据采集接口函数为void Modbus_PollFunc(void *protocolInfo, void **data), 与ProtocolInterface具有相同函数签名, 方便接入设备层数据采集模块;

(3) Modbus数据采集接口函数将配置信息指针protocolInfo转换为struct ModbusInfoStruct *类型;

(4)然后根据配置信息中的从机ID和寄存器地址进行数据采集, 采集到的数据通过指针data返回给设备层数据采集模块.

3.2 OPC UA服务器

OPC UA服务器为OPC UA客户端提供数据, 典型的OPC UA应用的形式如图4所示.

图 4 OPC UA软件层次

一个完整的OPC UA应用程序由3个部分组成: OPC UA栈、OPC UA SDK和UA服务器或者UA客户端[12]. 本文基于open62541实现OPC UA服务器, open62541是一个开源的OPC UA 协议栈, 与其他OPC UA协议栈相比, open62541在CPU利用率、实时性和功耗等方面更有优势[13,14].

OPC UA服务器使用单独的线程运行. 网关启动后首先通过配置文件解析器将配置文件解析生成地址空间信息模型, 然后开启OPC UA服务, 为接入服务器的OPC UA客户端提供数据.

为了保证OPC UA客户端能够读取节点的最新数据, 通常需要服务器循环采集并更新数据, 这种方法需花费大量时间更新数据, 即使客户端对数据的访问频率不高, 也会浪费大量系统资源. 而open62541为地址空间中的节点设定了回调函数, 在客户端读取数据之前, 服务器先调用回调函数, 在回调函数中对服务器端的数据进行更新, 使得服务器端在不重复刷新数据的前提下让客户端读取到最新数据, 提升系统效率.

3.3 图形化在线建模

现有的OPC UA信息建模工具SiOME和UaModeler, 在图形界面下也提供了快速建模的功能[15], 但建立的模型无法直接应用在OPC UA服务器上, 需要先生成程序源代码或XML文件, 编译后才能使用新建的信息模型, 步骤繁琐且容易出错.

为方便用户快速便捷地建立OPC UA信息模型并应用到网关中, 设计了一种图形化在线建模工具, 支持在线建模且不需要对源代码进行修改和重新编译.

3.3.1 图形化在线建模工具的设计

图形化在线建模工具是基于Web的应用程序, 为用户提供了快速信息建模功能, 其结构如图5所示.

图 5 图形化在线建模工具结构图

通过图形化在线建模工具, 用户可以方便地创建新模型, 并根据实际需求编辑模型. 模型内部节点以树形结构进行组织, 节点中包含对应OPC UA节点的属性, 此外, 在Variable类型节点中还包含了采集设备层数据的必要信息. 新建的信息模型会被传回Web服务器保存在本地磁盘成为配置文件, 并为其在数据库中创建一份记录(包括模型名称、存储路径、日期以及当前应用状态). 用户使用该工具能够对所有模型进行管理.

当用户将模型应用到网关后, 网关在重新启动后会自动读取当前处于应用状态的配置文件, 并在OPC UA地址空间中建立此信息模型, 在设备层数据采集模块中生成任务队列. 用户使用图形化建模工具进行信息建模的流程如图6所示.

3.3.2 配置文件与配置文件解析器

配置文件基于JSON格式, 是一种轻量级的数据交换格式[16]. 配置文件内包含了从数据采集到地址空间构建的全部信息, 主要包括:

(1) OPC UA服务器地址空间信息模型;

(2)用于设备层数据采集的现场协议配置信息, 例如协议类型、地址和寄存器地址等;

(3)设备层数据与地址空间中节点的对应关系;

(4)数据的采集频率等其他信息.

配置文件解析器共有两个, 其中一个位于OPC UA服务器内, 该配置文件解析器解析配置文件后会为OPC UA服务器构造地址空间信息模型. 另一个配置文件解析器位于设备层数据采集模块, 解析配置文件中有关设备层数据采集的任务, 并构造形成任务队列. 配置文件解析器使用了CJSON库作为解析引擎, 使用深度优先搜索方法对树形结构的配置文件进行解析.

4 OPC UA网关应用 4.1 单相电表的信息建模

本文以单相电表DDS5188为例对OPC UA网关进行信息建模, 并连接实物进行测试. 该电表支持以RS435为接口的Modbus-RTU协议, 常用于大型场馆的用电控制系统. 电表的6种数据根据属性分为两类, 电压、电流和功率属于电表的实时电力数据; 波特率、电压量程和电流量程属于电表参数. 由此, 电表的信息模型用如图7所示的地址空间视图表示. 电表DDS5188的设备地址设置为0x01, 其部分寄存器信息如表3所示.

在图形化在线建模工具中进行单相电表信息建模, 建模界面如图8所示. 重启网关后网关开始对单相电表进行数据采集.

图 6 图形化建模工具使用流程图

图 7 单相电表信息模型视图

表 3 单相电表部分寄存器信息

4.2 网关运行

使用Raspberry Pi 4B的串口设备“/dev/serial0”作为Modbus通信的物理端口, 该接口为TTL电平, 通过一个MAX485芯片转换为RS485电平, 并连接到单相电表DDS5188. 将串口配置为8个数据位、不校验、一个停止位的模式, 之后打开串口与单相电表建立连接.

使用UaExpert作为OPC UA 客户端连接网关OPC UA服务器, 查看在OPC UA服务器地址空间中创建的单相电表的模型, 监控采集到的各项数据如图9所示.

图 8 单相电表建模过程

图 9 OPC UA客户端访问网关结果

4.3 实验分析

从建模的过程可以看出, 通过浏览器可以直接访问OPC UA网关图形化在线建模工具. 用户只需要使用该工具进行信息建模并将模型保存, 重启网关后信息模型将应用在OPC UA地址空间中. 相比目前行业通用的UaModeler等OPC UA信息建模工具, OPC UA网关提供的图形化在线建模工具降低了建模的复杂性, 用户无需对模型进行导出以及对代码进行重新编译就可以使用, 降低了用户的学习和使用成本.

从实验结果可以看出, OPC UA网关实现了对Modbus等现场协议的屏蔽, 向上层应用提供了同一的服务接口. 将来自单相电表的数据构建为结构化的模型, 提供了更为丰富有效的语义信息. 实验中使用软件UaExpert作为OPC UA客户端能够实时从OPC UA服务器获取单相电表运行数据, 表明OPC UA网关实现了数据的高效可靠传输.

5 结束语

为了使当前制造车间中不支持OPC UA功能的制造设备融入数字化车间互联架构, 本文设计了一种图形化在线建模的OPC UA网关, 克服了异构网络之间的数据交换壁垒, 为实现车间数字化提供了解决方案. OPC UA网关为用户提供了便利的图形化建模工具, 减小了应用成本. 另外, 网关支持网页端控制台对网关的控制与状态监控, 更便于用户使用. 最后,以单相电表DDS5188为例对OPC UA网关的建模和使用进行了测试, 验证了网关的可行性.

参考文献
[1]
罗军舟, 何源, 张兰, 等. 云端融合的工业互联网体系结构及关键技术. 中国科学: 信息科学, 2020, 50(2): 195-220.
[2]
张兆坤, 邵珠峰, 王立平, 等. 数字化车间信息模型及其建模与标准化. 清华大学学报(自然科学版), 2017, 57(2): 128-133, 140. DOI:10.16511/j.cnki.qhdxxb.2017.22.003
[3]
李广博. 基于OPC UA的离散制造车间监控系统的研究与应用[硕士学位论文]. 沈阳: 中国科学院大学(中国科学院沈阳计算技术研究所), 2019.
[4]
王立平, 张兆坤, 邵珠峰, 等. 机床制造加工数字化车间信息模型及其应用研究. 机械工程学报, 2019, 55(9): 154-165.
[5]
van der Linden D, Granzer W, Kastner W. OPC Unified Architecture (OPC UA) new opportunities of system integration and information modelling in automation systems. Proceedings of 2011 9th IEEE International Conference on Industrial Informatics. Lisbon, Portugal. 2011. 1–169.
[6]
夏文霞, 庞伶俐, 李冬冬, 等. OPC UA与5G融合在工业测试床的应用. 制造业自动化, 2020, 42(7): 74-78. DOI:10.3969/j.issn.1009-0134.2020.07.018
[7]
黄李炳, 江先志. 基于OPC UA的数控机床联网适配器设计与研发. 制造业自动化, 2016, 38(10): 64-66, 79. DOI:10.3969/j.issn.1009-0134.2016.10.016
[8]
von Arnim C, Friedl S, Lechler A, et al. Automated OPC UA address space generation from existing data structures. Proceedings of 2019 IEEE 17th International Conference on Industrial Informatics. Helsinki, Finland. 2019. 959–964.
[9]
刘丹, 赵艳领, 谢素芬. 基于OPC UA的数字化车间互联网络架构及OPC UA开发实现. 中国仪器仪表, 2017(10): 39-44. DOI:10.3969/j.issn.1005-2852.2017.10.006
[10]
白双星. 基于物联网的工业现场数据采集网络系统的设计与实现[硕士学位论文]. 北京: 北京交通大学, 2019.
[11]
郭琼. 现场总线技术及其应用. 北京: 机械工业出版社, 2011.
[12]
Mahnke W, Leitner SH, Damm M. OPC Unified Architecture. Berlin: Springer, 2009.
[13]
Cenedese A, Frodella M, Tramarin F, et al. Comparative assessment of different OPC UA open-source stacks for embedded systems. Proceedings of 2019 24th IEEE International Conference on Emerging Technologies and Factory Automation. Zaragoza, Spain. 2019. 1127–1134.
[14]
Morato A, Vitturi S, Tramarin F, et al. Assessment of different OPC UA industrial IoT solutions for distributed measurement applications. Proceedings of 2020 IEEE International Instrumentation and Measurement Technology Conference. Dubrovnik, Croatia. 2020. 1–6.
[15]
李锋, 张坤, 原丽娜. 基于OPC UA的纺织智能染整车间信息模型研究与实现. 纺织学报, 2020, 41(2): 149-154. DOI:10.13475/j.fzxb.20190203706
[16]
Afsari K, Eastman CM, Castro-Lacouture D. JavaScript Object Notation (JSON) data serialization for IFC schema in web-based BIM data exchange. Automation in Construction, 2017, 77: 24-51. DOI:10.1016/j.autcon.2017.01.011