图形化在线建模的OPC UA网关设计①

2021-09-10 07:31李军怀王怀军张发存崔颖安冯连强
计算机系统应用 2021年8期
关键词:配置文件图形化网关

苏 鑫,李军怀,王怀军,张发存,崔颖安,冯连强

1(西安理工大学 计算机科学与工程学院,西安 710048)

2(中国重型机械研究院股份公司,西安 710032)

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 网关的数字化车间通信架构

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

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

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

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

图2 网关工作流程

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

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

3.1 设备层数据采集

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

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

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

3.1.1 数据采集接口

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

表1 任务节点成员

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

函数指针ProtocolInterface是数据采集接口具备通用性和可扩展性的关键,其函数签名为void Protocol-Interface(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所示.

图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所示.

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

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

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

图8 单相电表建模过程

4.2 网关运行

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

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

图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 网关的建模和使用进行了测试,验证了网关的可行性.

猜你喜欢
配置文件图形化网关
基于Docker的实时数据处理系统配置文件管理软件的设计与实现
智能燃气表物联网运行体系网关技术研究
基于Arduino图形化编程的教学应用研究
基于FPGA的工业TSN融合网关设计
浅谈图形化编程在小学教育中的作用
大规模低轨卫星网络移动性管理方案
一种主从冗余网关的故障模式分析与处理
从Windows 10中删除所有网络配置文件
用软件处理Windows沙盒配置文件
互不干涉混用Chromium Edge