煤矿设备工作环境恶劣,连续作业时间长,对设备健康状态要求苛刻。准确高效地获取煤矿设备主要工作部件状态信息,对设备故障诊断有重要意义[1-3]。汪杰等[4]基于B/S多层架构设计了煤矿设备状态监测系统,实现了煤矿设备运行状态实时显示、历史数据统计和查询、故障报警等功能。张都[5]利用物联网与BP神经网络建立了煤矿井下机电设备状态监测系统,实现了煤矿井下机电设备安全稳定运行。魏昊然等[6]研制了以无线监测装置为数据传输纽带的采煤机无线状态监测系统和基于LabVIEW的采煤机状态监测软件平台,实现了采煤机运行状态的无线监测及故障的诊断分析。甄智强[7]设计了一套以MCU(Microcontroller Unit)为核心的掘进设备远程监测系统,对掘进设备和运行环境的状态进行监测,并在设备发生故障时实现预警。现有研究大多是针对单一设备进行监测,对井下设备群同时作业时设备监测数据高并发[8]导致传输效率低的问题缺乏考虑。本文提出一种煤矿设备状态监测系统。该系统通过数据集成网关有效消除传感器网络的异构性;采用Netty网络传输模型,避免空轮询导致的服务器负载增加,提高系统的高并发处理能力和稳定性。
煤矿设备状态监测系统采用传统物联网架构[9],包括感知层、网络层、应用层,如图1所示。
图1 煤矿设备状态监测系统总体架构
Fig.1 Overall framework of coal mine equipment
condition monitoring system
感知层负责底层数据采集,包括各种传感器和无线采集模块。在煤矿设备上安装振动、电压、电流、转速和转矩等传感器采集设备状态数据,并通过ZigBee模块进行数据传输。通过红外成像传感器、温度传感器采集环境数据,并通过4G DTU模块进行传输。
网络层负责数据统一接入和高并发传输,包括数据集成网关和网络传输模型2个部分。
应用层负责将采集的数据进行存储及分析处理。采用标准化、中心化、归一化等方法[10]对振动和噪声等时序信号进行数据清洗,使偏态分布的序列呈对称分布,消除序列中的异方差,将变量间的非线性关系转换成线性关系,从而在数据量突增时改善计算精度。
数据集成网关包括传感器网络协议适配器、消息推送服务和数据传输服务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
名称类型长度描述Typechar8数据类型Source IPchar16数据来源IP地址Time Stampchar16数据产生的时间Valuechar32设备运行各监测值Extrachar16附加信息
解析后的JSON数据推送过程如图5所示。当有监测数据接入时,消息推送服务将数据通过ActiveMQ消息队列[11]中创建的Queue通道进行点对点传输,保证监测数据的实时性和可靠性。数据传输服务实时监听Queue通道,当有消息到达时,将消息实时推送到网络传输模型中,从而实现设备状态数据的高并发传输。
图5 数据推送过程
Fig.5 Data push process
传统获取实时状态数据的方式是通过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
采用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
煤矿设备状态监测系统采用传统物联网架构对数据进行采集、传输、存储及分析。该系统在数据集成网关中对不同传感器进行注册,利用传感器网络协议适配器调用不同传感器网络协议解析接口生成统一格式的JSON数据,并将数据发送到对应的消息推送服务中,通过ActiveMQ消息队列中的Queue通道进行点对点传输,数据传输服务将消息实时推送到网络传输模型中,实现设备状态数据的高并发传输,保证监测数据传输实时性和可靠性;采用Netty网络传输模型,避免空轮询导致服务器负载增加,提高监测数据传输效率。测试结果表明,随着系统并发请求次数增加,采用Java NIO模型比采用Netty模型的系统CPU使用率高28%;在系统并发请求次数相同的情况下,采用Java NIO模型的系统平均响应时间大于采用Netty模型的系统。采用Netty模型能有效提升煤矿设备状态监测系统的高并发处理能力,满足设备监测数据高效传输要求。
[1] 李腾飞,李常友,李敬兆.煤矿信息全面感知与智慧决策系统[J].工矿自动化,2020,46(3):34-37.
LI Tengfei,LI Changyou,LI Jingzhao.Coal mine information comprehensive perception and intelligent decision system[J].Industry and Mine Automation,2020,46(3):34-37.
[2] 王国法,王虹,任怀伟,等.智慧煤矿2025情景目标和发展路径[J].煤炭学报,2018,43(2):295-305.
WANG Guofa,WANG Hong,REN Huaiwei,et al.2025 scenarios and development path of intelligent coal mine[J].Journal of China Coal Society,2018,43(2):295-305.
[3] 丁恩杰,金雷,陈迪.互联网+感知矿山安全监控系统研究[J].煤炭科学技术,2017,45(1):129-134.
DING Enjie,JIN Lei,CHEN Di.Study on safety monitoring and control system of Internet+perception mine[J].Coal Science and Technology,2017,45(1):129-134.
[4] 汪杰,王春华,李晓华.基于云平台的煤矿设备状态监测系统设计[J].煤矿机械,2020,41(11):162-165.
WANG Jie,WANG Chunhua,LI Xiaohua.Design of coal mine equipment condition monitoring system based on cloud platform[J].Coal Mine Machinery,2020,41(11):162-165.
[5] 张都.煤矿井下机电设备状态监测技术分析[J].能源与节能,2021(2):166-167.
ZHANG Du.Analysis of state monitoring technology for electromechanical equipment underground in coal mines[J].Energy and Conservation,2021(2):166-167.
[6] 魏昊然,许金龙,陈曦晖,等.电牵引采煤机无线状态监测系统及软件平台设计[J].煤矿机械,2017,38(3):11-13.
WEI Haoran,XU Jinlong,CHEN Xihui,et al.Design of wireless state monitoring system of electric haulage shearer and software platform[J].Coal Mine Machinery,2017,38(3):11-13.
[7] 甄智强.掘进设备远程监测系统设计与应用[J].机电工程技术,2020,49(6):151-153.
ZHEN Zhiqiang.Design and application of remote monitoring system for tunneling equipment[J].Mechanical & Electrical Engineering Technology,2020,49(6):151-153.
[8] 张永强,刘帅,高鸿斌.传感数据通信协议及高并发服务的设计与实现——以微环境监测平台为例[J].河北科技大学学报,2018,39(4):356-364.
ZHANG Yongqiang,LIU Shuai,GAO Hongbin.Design and implementation of sensor data communication protocol and high concurrent services[J].Journal of Hebei University of Science and Technology,2018,39(4):356-364.
[9] 孙其博,刘杰,黎羴,等.物联网:概念、架构与关键技术研究综述[J].北京邮电大学学报,2010,33(3):1-9.
SUN Qibo,LIU Jie,LI Shan,et al.Internet of things:summarize on concepts,architecture and key technology problem[J].Journal of Beijing University of Posts and Telecommunications,2010,33(3):1-9.
[10] 赵一凡,卞良,丛昕.数据清洗方法研究综述[J].软件导刊,2017,16(12):222-224.
ZHAO Yifan,BIAN Liang,CONG Xin.Survey of data cleaning method in data preprocessing[J].Software Guide,2017,16(12):222-224.
[11] 陈瑶,李洋磊.基于ActiveMQ的数据传输框架性能优化[J].现代信息科技,2019,3(16):128-130.
CHEN Yao,LI Yanglei.Performance optimization of data transmission framework based on ActiveMQ[J].Modern Information Technology,2019,3(16):128-130.
[12] 常正超.高并发访问量下网络I/O模型选择的研究[J].电脑知识与技术,2016,12(19):28-29.
CHANG Zhengchao.Research on network I/O model selection under high concurrent traffic [J].Computer Knowledge and Technology,2016,12(19):28-29.
[13] 顾振德,刘子辰,龙隆,等.基于Netty的IoT终端通信服务系统设计[J].计算机应用与软件,2019,36(4):135-139.
GU Zhende,LIU Zichen,LONG Long,et al.Design of IoT terminal communication service system based on Netty[J].Computer Applications and Software,2019,36(4):135-139.
[14] 陈强,武佳佳.基于Netty高并发物联网服务器研究与设计[J].电子技术与软件工程,2018(7):34-35.
CHEN Qiang,WU Jiajia.Research and design of high parallel Internet of things server based on Netty [J].Electronic Technology & Software Engineering,2018(7):34-35.
CAO Xiangang,DUAN Xinyu,ZHANG Mengyuan,et al.Coal mine equipment condition monitoring system design[J].Industry and Mine Automation,2021,47(5):101-105.