APP下载

煤矿设备状态监测系统设计

2021-06-02曹现刚段欣宇张梦园雷卓李彦川

工矿自动化 2021年5期
关键词:网关传输状态

曹现刚, 段欣宇, 张梦园, 雷卓, 李彦川

(1.西安科技大学 机械工程学院, 陕西 西安 710054;2.陕西省矿山机电装备智能检测重点实验室, 陕西 西安 710054)

0 引言

煤矿设备工作环境恶劣,连续作业时间长,对设备健康状态要求苛刻。准确高效地获取煤矿设备主要工作部件状态信息,对设备故障诊断有重要意义[1-3]。汪杰等[4]基于B/S多层架构设计了煤矿设备状态监测系统,实现了煤矿设备运行状态实时显示、历史数据统计和查询、故障报警等功能。张都[5]利用物联网与BP神经网络建立了煤矿井下机电设备状态监测系统,实现了煤矿井下机电设备安全稳定运行。魏昊然等[6]研制了以无线监测装置为数据传输纽带的采煤机无线状态监测系统和基于LabVIEW的采煤机状态监测软件平台,实现了采煤机运行状态的无线监测及故障的诊断分析。甄智强[7]设计了一套以MCU(Microcontroller Unit)为核心的掘进设备远程监测系统,对掘进设备和运行环境的状态进行监测,并在设备发生故障时实现预警。现有研究大多是针对单一设备进行监测,对井下设备群同时作业时设备监测数据高并发[8]导致传输效率低的问题缺乏考虑。本文提出一种煤矿设备状态监测系统。该系统通过数据集成网关有效消除传感器网络的异构性;采用Netty网络传输模型,避免空轮询导致的服务器负载增加,提高系统的高并发处理能力和稳定性。

1 系统架构

煤矿设备状态监测系统采用传统物联网架构[9],包括感知层、网络层、应用层,如图1所示。

图1 煤矿设备状态监测系统总体架构Fig.1 Overall framework of coal mine equipment condition monitoring system

感知层负责底层数据采集,包括各种传感器和无线采集模块。在煤矿设备上安装振动、电压、电流、转速和转矩等传感器采集设备状态数据,并通过ZigBee模块进行数据传输。通过红外成像传感器、温度传感器采集环境数据,并通过4G DTU模块进行传输。

网络层负责数据统一接入和高并发传输,包括数据集成网关和网络传输模型2个部分。

应用层负责将采集的数据进行存储及分析处理。采用标准化、中心化、归一化等方法[10]对振动和噪声等时序信号进行数据清洗,使偏态分布的序列呈对称分布,消除序列中的异方差,将变量间的非线性关系转换成线性关系,从而在数据量突增时改善计算精度。

2 系统关键技术

2.1 数据集成网关

数据集成网关包括传感器网络协议适配器、消息推送服务和数据传输服务3个模块,如图2所示。数据集成网关主要完成以下任务:① 实现对异构传感器网络协议的适配工作;② 为数据传输提供统一格式和服务接口;③ 通过发布和订阅模式实现上位机和服务器之间双向通信,通过异步非阻塞模式提供有效的数据传输和安全认证。

图2 数据集成网关组成Fig.2 Composition of the data integration gateway

在上位机部署数据集成网关服务接口,将不同传感器在网关中进行注册,选择相应的网关编号、传感器类型、数据协议等,如图3所示。对传输控制协议(Transmission Control Protocol,TCP)、端口号等通信参数进行配置并启动监听。

图3 数据集成网关服务接口Fig.3 Data integration gateway service interface

传感器网络协议适配器可将不同传感器网络的数据统一接入服务器,如图4所示。该传感器网络协议适配器集成了多种传感器网络(如ZigBee,WiFi,4G DTU等)协议的解析jar包,将各种协议的解析jar包封装成各传感器网络协议解析接口,通过调用不同传感器网络协议解析接口来消除传感器网络的异构性,生成统一格式的Java Script Object Notation(JSON)数据。数据格式见表1。

图4 传感器网络协议适配器Fig.4 Network protocol adapter

表1 自定义数据格式Table 1 Custom data format

解析后的JSON数据推送过程如图5所示。当有监测数据接入时,消息推送服务将数据通过ActiveMQ消息队列[11]中创建的Queue通道进行点对点传输,保证监测数据的实时性和可靠性。数据传输服务实时监听Queue通道,当有消息到达时,将消息实时推送到网络传输模型中,从而实现设备状态数据的高并发传输。

图5 数据推送过程Fig.5 Data push process

2.2 网络传输模型

传统获取实时状态数据的方式是通过Java Non-blocking I/O(NIO)网络传输模型对上位机与服务器建立长轮询来收发数据。Java NIO模型采用Reactor模式,对多路复用器(Selector)进行复用,使1个线程能对大量的Socket线程进行监听、连接、读写、轮询等操作[12],如图6所示。如果井下大量设备同时作业,存在待机设备与服务器保持数据连接,可能出现Selector空轮询现象[9],导致服务器负载增加,使CPU始终处于高负载状态。

图6 Java NIO网络传输模型Fig.6 Java NIO network transmission model

为有效避免空轮询带来的服务器负载增加问题,本文采用Netty作为网络传输模型。Netty是在Java NIO的基础上改进的,采用I/O多路复用技术,在单线程条件下处理多个I/O连接的请求[13]。在数据采集过程中,多个设备同时作业导致数据采样频率和传感器终端的并发请求数量增加,Netty中的Epoll模式优先处理已就绪的I/O连接,从而减少空轮询现象[14]。

Netty网络传输模型如图7所示,Netty中1个EventLoopGroup(线程池)可以包含1个或多个EventLoop(线程),1个EventLoop包含多个Channel(通道)。为了降低系统资源的使用率和减少线程的切换,在设计Netty网络传输模型时选择复用同一个EventLoopGroup,由于CPU处理速度远大于网络传输速度,所以1个EventLoopGroup就可以实现客户端连接服务器的操作,从而提高模型效率。

图7 Netty网络传输模型Fig.7 Netty network transmission model

3 测试与结果分析

采用Apache JMeter工具进行煤矿设备状态监测系统性能测试,每秒向服务器发送1个长度为180 Byte的数据,即为1次并发请求。通过增加系统的并发请求次数,对比分别采用Java NIO模型和Netty模型的系统CPU使用率及系统平均响应时间。

系统CPU使用率测试结果如图8所示。可看出同一时刻系统并发请求次数达到3 000时,采用Java NIO模型的系统CPU使用率比采用Netty模型的系统高28%。这是由于Java NIO模型连接时会定期进行轮询,当有新消息返回时会响应消息并关闭连接,处理完后再重新发送新的请求,每次建立连接都会影响CPU性能;而Netty模型只需建立1次长连接,提高了系统效率。

图8 系统CPU使用率测试结果Fig.8 System CPU usage test results

系统平均响应时间测试结果如图9所示。可看出随着系统并发请求次数增加,系统平均响应时间不断增大;当系统并发请求次数大于1 400时,采用Java NIO模型的系统平均响应时间急剧增大,当并发请求次数达到3 000时,采用Java NIO模型的系统平均响应时间达1 230 ms;而采用Netty模型的系统平均响应时间较平稳,始终在500 ms以下。

图9 系统平均响应时间测试结果Fig.9 System average response time test results

4 结语

煤矿设备状态监测系统采用传统物联网架构对数据进行采集、传输、存储及分析。该系统在数据集成网关中对不同传感器进行注册,利用传感器网络协议适配器调用不同传感器网络协议解析接口生成统一格式的JSON数据,并将数据发送到对应的消息推送服务中,通过ActiveMQ消息队列中的Queue通道进行点对点传输,数据传输服务将消息实时推送到网络传输模型中,实现设备状态数据的高并发传输,保证监测数据传输实时性和可靠性;采用Netty网络传输模型,避免空轮询导致服务器负载增加,提高监测数据传输效率。测试结果表明,随着系统并发请求次数增加,采用Java NIO模型比采用Netty模型的系统CPU使用率高28%;在系统并发请求次数相同的情况下,采用Java NIO模型的系统平均响应时间大于采用Netty模型的系统。采用Netty模型能有效提升煤矿设备状态监测系统的高并发处理能力,满足设备监测数据高效传输要求。

猜你喜欢

网关传输状态
混合型随机微分方程的传输不等式
牵引8K超高清传输时代 FIBBR Pure38K
状态联想
信号系统网关设备的优化
关于无线电力传输的探究
生命的另一种状态
支持长距离4K HDR传输 AudioQuest Pearl、 Forest、 Cinnamon HDMI线
坚持是成功前的状态
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”