工业设备入云的连接模型研究
2020-07-01
(中国航空制造技术研究院,北京 100024)
随着工业互联网时代的到来和云计算技术的日趋成熟,一种面向服务的网络化制造技术——云制造成为研究热点[1]。云制造以云计算为理论基础,将“基础设施即服务(IaaS)”、“平台即服务(PaaS)”、“软件即服务(SaaS)”理论衍生到“制造即服务”[2]。而设备接入云平台,并能够与云应用安全高效地通信是云制造的基础,在国家工业信息安全发展研究中心研究员李君等[3]提出的工业互联网参考架构中,设备入云被认为是PaaS的基础资源。然而工业设备入云普遍面临3个问题[4]:(1)异构设备通讯协议标准繁多;(2)数据安全保障复杂;(3)上云数据的接口标准不统一。
为了解决上述问题,学者们进行了大量相关研究与实践。付翔[2]提出了CARA(Cloud Access Resource Adapter)数控设备入云方法,如图1所示,CARA 接入系统分为采集端和服务端,其中采集端为软硬一体设备,可采集RS–232接口、LCD接口、USB接口、GPS 模块、数据存储模块等多种协议数据,并通过Socket 通信输出数据;服务端为软件系统,具备接收采集端数据、存储数据和提供WEB服务3种功能。 万海峰等[5]研究了利用Modbus TCP协议实现单机功率设备能耗“上云”技术,实现了云端管理异构设备能耗的功能,并保证了数据完整性。陈国金等[6]提出了分布式数控(DNC)数据采集系统通信结构,使分散的数控设备能够联入企业以太网。
Lee 等[7]设计了一套数据实时采集系统,实现了远程设备参数采集。Lojka 等[8]研究通过SCADA/HMI(监控与数据采集/人机界面)、SOA(面向服务的体系结构)实现设备入云,该方法着重研究了SCADA采集设备数据与设备入云物理拓扑。Li 等[9]研究了利用RFID(Radio Frequency Identifcation)技术远程采集数据的方法,实现对非设备本身数据(如物流信息、物料信息等)的远程采集与入云。
上述方法均不同程度地实现了异构设备入云,但未对入云数据的安全与接口标准作出说明。本文设计了以工业消息中间件(Industrial Message Queue,IMQ)为枢纽的工业设备接入云的连接模型,一方面,模型中定义了IMQ、IMQ适配器的能力,从而保证了异构设备入云的可行性;另一方面,模型中定义了IMQ的适配协议与数据发布协议,从而保证了入云数据的安全和接口标准统一。
1 基于IMQ的工业设备入云的连接模型
基于IMQ的工业设备入云的连接模型如图2所示,包括工业设备、IMQ适配协议、IMQ数据发布协议、IMQ、云应用5个部分,其中工业设备端的适配器、适配协议、数据发布协议和IMQ是模型的核心构件。
工业设备依靠IMQ适配器接入工业中间件。IMQ适配器是采集设备数据和给设备发送指令的软件模块。适配器支持用一种或多种协议(如OPC、Modbus TCP等)采集设备数据和发送指令。
IMQ适配协议是适配器与中间件建立连接、身份认证与双向通信的通信协议。
图1 CARA接入云平台的模型Fig.1 CARA connection model to cloud platform
IMQ数据发布协议是云应用与中间件建立连接、身份认证与双向通信的通信协议。
IMQ是为工业设备与云提供安全可靠的即时通讯的软件。它允许设备通过授权的适配器接入,接收适配器采集的收据,给适配器下发指令,并对接入的设备进行管理。对于接收到的数据,中间件用适配协议解析数据结构、认证数据安全。解析后的数据可以根据设定规则进行过滤和存储,并按照数据发布协议进行格式化。中间件为设备提供Socket、Web Socket和Web Service这3种接入云的途径,其中Socket、Web Socket 两种途径提供消息队列和发布订阅服务,将格式化数据推送上云;Web Service 途径提供RESTful API 与SOAP[10](Simple Object Access Protocol)API服务,将格式化数据封装,供云端调用。设备通过适配器接入中间件,或者云应用访问IMQ服务,均需要经过授权认证。此外,为了便于维护数据,IMQ 应具有完备的日志记录能力。
云应用是部署在云平台中的应用程序。云应用依据数据发布协议与中间件双向通信。
图3给出了模型中设备入云的步骤:首先,设备与云应用向IMQ请求建立连接;然后,待连接建立,设备与云应用向IMQ 请求身份认证;最后,待身份认证通过,云应用与设备利用IMQ进行双向通信。
图2 基于IMQ的工业设备入云的连接模型Fig.2 Connection model of industrial device to cloud platform based on IMQ
IMQ与普通消息中间件的区别有两点,即生产者不同和通信方式不同,如图4所示。
(1)生产者不同。
普通消息中间件的生产者一般为数据提供者,中间件为每一个生产者提供独立的数据传输队列,中间件只负责将生产者生产的数据路由到消费者,不优化更改数据内容;IMQ的生产者不是数据提供者,IMQ首先接收适配器的数据,并将数据放入缓存池,然后对数据过滤和分类,最后由IMQ 将过滤和分类后的数据发布成服务。IMQ的消息生产模式,使得同一个数据队列中可以包含任意多个设备的数据,从而打破了设备之间的数据壁垒。
(2)通信方式不同。
如果普通消息中间件的消费者向生产者发送指令,则需要将消费者也变成一个指令的生产者,并将生产者变成指令的消费者,方能实现全双工通信。IMQ是针对工业设备进行数据采集与指令发送的专业工具,它利用数据队列实现设备数据的实时采集,利用RESTful 与SOAP协议的API 实现设备指令的下发。
1.1 工业消息中间件(IMQ)
工业消息中间件是为工业设备与云提供安全可靠的即时通讯的软件。它需要具备访问授权、数据和指令接发、数据认证、数据过滤、数据格式化、数据存储、数据路由、数据服务发布、接入设备管理和日志记录等能力。
访问授权指中间件可以给设备和云应用进行授权。只有经过授权的设备才能通过适配器接入中间件;只有经过授权的云应用才能访问中间件发布的队列、发布/订阅和Web Service 等服务。其中授权方式采用SSH(Secure Shell)协议[11]。
图3 模型中设备入云步骤Fig.3 Steps of device connection to cloud platform
数据和指令接发如图5所示,指中间件可以实时接收适配器采集的设备参数和下发云应用的指令。设备参数经过过滤和格式化后,被路由到中间件发布的服务,供云应用调用;中间件接收云应用的指令,并将指令下发给适配器,最后由适配器下发给设备执行。
数据认证指中间件能够按照适配协议解析适配器采集的设备参数,按照数据发布协议解析云应用下发的指令,并验证解析后数据的完整性。
数据过滤指中间件能够对适配器采集的设备参数进行过滤分类。适配器采集的设备参数往往种类繁多,价值各异,因此需要对参数进行过滤分类。以数控设备为例,可将其参数分为基础数据、工艺设定数据、实际加工数据和异常数据4类,如表1所示;参数价值分为高、低两个级别。其中基础数据是数控设备的通用参数,包括开关待(开机、关机、待机)状态、能耗等参数,这类参数一般不影响设备健康与产品质量,因此价值较低;工艺设定参数和实际加工参数分别包括了加工设备的主轴转速、温度、压力等的工艺设定值和实际加工值,这类参数与产品质量息息相关,具备高价值;异常数据包括设备在生产过程发生的异常和报警信息,这类信息对于设备本身的维护和产品的质量控制均有高价值。
数据格式化指中间件能够对接收到的设备参数和指令进行格式化编码。一方面便于数据的存储,另一方面便于按照适配协议与数据发布协议进行输出。
图4 普通消息中间件与IMQ的通信模型对比Fig.4 Comparison of communication models between general message queue and IMQ
图5 数据和指令接发Fig.5 Receiving and sending data and instructions
数据存储指中间件能够对接收到的设备参数和指令进行缓存和持久化存储。其中缓存指中间件可以将设备参数和指令存储在内存或磁盘,待订阅设备参数的云应用和接收指令的适配器与中间件建立通信后,再将设备参数与指令分别发送给云应用与适配器,保证了数据通信的可靠性;持久化存储指中间件可以将格式化后的设备参数与指令存储到文件或数据库,以供历史查询,保障了数据的完整性与安全性。
数据路由指中间件能够根据设定,将设备参数和指令分别准确地发送到对应的云应用与设备。如图6所示,中间件中创建了两个队列服务和一个WS(Web Service)服务,其中队列服务1发布设备开关机状态参数,队列服务2发布设备主轴转速参数,WS服务可下发指令。从图4可知,适配器a、b的开关机状态参数路由到队列服务1,主轴转速路由到队列服务2,然后分别被队列服务1、2 准确发送到不同的云应用。同时,云应用的指令也路由到指定的适配器,从而准确地发送给设备执行。
数据服务发布,如表2所示,指中间件可以将设备参数以消息队列、发布/订阅、RESTful API和SOAP API 这4种服务模式发布。其中消息队列与发布/订阅支持Socket和Web Socket 两种协议;RESTful API和SOAP API 支持下发云应用指令。
接入设备管理指中间件具有给设备授权,控制设备接入状态,监控设备采集参数等能力。中间件与设备是一对多的关系,必然需要管理大量接入的设备。
表1 数控设备参数分类Table1 Classification of NC equipment parameters
日志记录指中间件能够记录创建服务、管理设备等重要操作和异常信息。这便于中间件的升级与维护。
1.2 IMQ适配协议
为了保证适配器与中间件的数据安全、通信安全和通信效率,本文定义了IMQ适配协议,如表3所示。该协议包含握手方式、授权认证、数据编码、数据加密和心跳检查5部分。其中建立连接采用TCP/IP协议实现;授权认证采用SSH协议,授权通过后适配器方可与中间件通信;数据编码需要设计字节编码格式,准则是最大限度去除编码中的冗余信息,尽可能提高通信效率;数据加密需要设计或选择加密算法,如RSA、AES(Advanced Encryption Standard)算法等,对编码数据进行加密和解密;心跳检测需定义检测机制,保证适配器与中间件的网络通畅。设计字节编码格式与检测机制属于IMQ的具体实现,而本文旨在讨论IMQ模型,因此不在本文论述范围内。
图6 数据路由Fig.6 Data routing
表2 数据服务发布能力Table2 Ability of data service publishing
表3 IMQ适配协议定义Table3 Definition of IMQ adaptation protocol
1.3 IMQ数据发布协议
为了保证中间件与云应用的数据安全通信安全和通信效率,本文定义了IMQ数据发布协议。该协议针对消息队列、订阅/发布服务与RESTful、SOAP服务各不相同。
消息队列、订阅/发布服务的通信方式类似于适配器与中间件的通信方式,因此适配协议可用做其数据发布协议。
RESTful 与SOAP服务数据发布协议定义如表4所示。RESTful 与SOAP 基于HTTP协议建立连接,授权认证采用口令认证,认证通过后获得Token 令牌,用于授权调用。数据编码采用JSON 编码(HTTP协议不适用于实时监听,接收实时数据效率不高,因此不需要特殊编码,且JSON可读性高,综合考虑采用JSON 编码),数据加密可采用RSA、AES 等算法。
1.4 IMQ适配器
IMQ适配器是设备按照适配协议的定义与中间件建立连接和通信的软件模块。它需要具备数据采集、授权请求、指令解析和数据格式化等能力。
数据采集指适配器应该具备以一种或多种协议(如OPC、Modbus TCP 等)连接设备、采集数据和发送指令的能力。
授权请求指适配器能够依据适配协议向中间件请求接入授权。
指令解析指适配器能够依据适配协议解密、解码中间件下发的指令。
数据格式化指适配器能够依据适配器协议编码、加密设备参数,并发送该数据到中间件。
由于异构设备的信息化水平、数据开放程度与通信协议各不相同,因此针对不同的设备需要提供不同的适配器,只要适配器满足上述4种能力,便可接入IMQ,实现设备入云。
表 4 RESTful与SOAP服务数据发布协议定义Table4 Definition of RESTful and SOAP service data publishing protocol
2 连接模型的应用
本文设计的连接模型主要应用于车间级设备接入公有云、私有云、公有传统服务器、私有传统服务器的应用场景。适用于车间级设备入云的原因至少包含以下3点:
(1)生产车间一般包含多台设备,且设备型号、功能与信息化水平各异;
(2)生产车间的设备参数包含了工艺过程参数及执行数据,信息价值高,需要保证数据存储与传输的安全性;
(3)生产车间作为生产组织的基础单元,具备相对独立的生产资源,此时IMQ 提供入云设备管理以车间为单位,系统复杂程度适中,方便管理。
基于该模型开发的实时监控系统,已经成功在某金属热成型车间实施,通过OPC协议连接设备的适配器,将超塑成型、热校型、磨削等类型在内的15 台异构生产设备连入了私有传统服务器,并提供了安全可靠的数据通信,实现了对设备参数的实时采集。
2.1 IMQ适配协议的应用
实时监控系统中IMQ适配协议得以实现,其中,连接的建立利用TCP/IP协议实现;授权认证通过密钥认证实现;数据编码的设计如图7所示,包括数据头JSON编码与数据值字节编码两部分;数据加密采用异或算法实现;心跳检测利用中间件每30s 发送心跳帧轮询适配器的方法实现。
2.2 IMQ数据发布协议的应用
实时监控系统中消息队列的数据发布协议与IMQ适配协议相同。RESTful、SOAP协议中连接的建立采用HTTP协议实现;授权认证采用秘钥认证实现;授权调用采用JWT(JSON Web Token)技术实现;数据编码采用JSON 编码,如图8所示;数据未加密。
2.3 IMQ的应用
实时监控系统中IMQ 配置socket 队列服务的界面如图9所示。IMQ 接收设备1与设备2的数据,并将数据存放在数据缓存池中,然后从数据池中选中设备1与设备2的I 基础数据(表1),构建“设备I 级参数”服务。
图8 RESTful、SOAP数据发布协议编码Fig.8 Data coding of RESTful and SOAP service data publishing protocol
图9 实时监控系统中IMQ配置socket队列服务Fig.9 Configuring socket queue by IMQ in real-time monitoring system
3 结论
在云制造环境下,为了实现异构设备接入云平台,并保障入云的数据安全与数据接口统一,本文设计了以IMQ为枢纽的设备入云的连接模型。该模型涉及工业设备、适配协议、数据发布协议、IMQ和云应用5部分内容,其中工业设备端的适配器、适配协议、数据发布协议和IMQ是模型的核心构件。工业设备可通过适配器接入IMQ,然后上传设备参数,中间件再过滤、路由数据,最终发送到云应用。同时,云应用可以下发指令到中间件,中间件再将指令路由到设备的适配器,最终下发给设备执行,从而实现云端指令下派。模型中的数据均按照适配协议与数据协议传输,以此保证设备参数上云的安全性。该模型为工业设备接入云平台提供了新思路,具备借鉴意义。