申瑞杰1, 吴新忠2, 牛洪海3, 张兆龙2, 夏令祥2, 周成2
(1.徐州市教育局, 江苏 徐州 221005; 2.中国矿业大学 信息与控制工程学院, 江苏 徐州 221116;3.南京南瑞继保电气有限公司,江苏 南京 211106)
摘要:针对因煤矿主要通风机房位置偏僻且有线网络不易覆盖等造成的主要通风机监控系统易沦为“信息孤岛”的问题,提出了一种基于移动平台的煤矿主要通风机远程无线监控系统设计方案。该系统采用GPRS DTU模块与现场PLC通信,从而获取现场监控数据,并通过GPRS网络将监控数据上传至云端数据服务器;基于Android系统的移动客户端采用Socket通信模式,通过3G、4G或WiFi无线网络接入云端数据服务器,使用户可随时随地远程监控主要通风机运行状况。测试结果验证了该系统的可行性。
关键词:煤矿通风机; 主要通风机; 远程无线监控; 移动平台; 移动客户端; 云端数据服务器; GPRS DTU; Socket通信
煤矿主要通风机的可靠运行对矿山生产安全具有重要意义。基于风量、负压、瓦斯浓度及通风机电动机的电参数、温度、振动等参数的主要通风机监控系统能够实时监测煤矿井下通风质量和通风机运行状态[1],有助于预防灾害发生,为通风机安全可靠运行提供保障。但煤矿主要通风机房地理位置较为偏僻,有线网络不易覆盖,因此主要通风机监控系统容易产生“信息孤岛”问题。随着3G,4G技术的不断发展,智能手机等移动设备已从简单的通信终端向移动互联网终端发展,可随时上网获取服务器上的信息。本文将移动设备应用于煤矿主要通风机监控领域,提出一种基于移动平台的煤矿主要通风机远程无线监控系统,以满足煤矿随时随地监控主要通风机运行状况的需求。
基于移动平台的煤矿主要通风机远程无线监控系统包括现场监控设备、云端数据服务器和移动客户端三部分[2],如图1所示。现场监控设备以CPU315-2PN/DP型PLC为核心,配以I/O模块及通信模块,可实时采集风量、负压、瓦斯浓度及通风机电动机电参数、振动、温度等数据。系统通过以太网将采集数据传输给上位机,在有局域网覆盖的情况下还可将数据发送至地面调度室监控终端,实现远程集控。
图1 基于移动平台的煤矿主要通风机远程无线监控系统组成
Fig.1 Constitution of remote wireless monitoring system for co l mine main ventilator based on mobile platform
系统以现场监控为基础,通过GPRS DTU将监控信息传送至分配固定IP地址的的云端数据服务器。数据服务器一方面接收并存储GPRS DTU发送来的现场数据,另一方面对移动客户端的会话请求作出及时应答,实现与移动客户端通信功能[3]。
在移动客户端,通过Socket编程使终端设备能够通过3G、4G或WiFi无线网络从数据服务器上远程读取现场监控数据[4-5]。客户端应用程序采用MVC(Model-View-Controller,模型-视图-控制器)模块化设计思想,软件设计包括功能实现和人机界面设计两部分[6]。
2.1 数据服务器与GPRS DTU模块通信
数据服务器中的监控数据通过现场安装的GPRS DTU模块LQ8110E与PLC的CP340串口通信采集而来。LQ8110E作为底层的数据采集模块,采用TCP客户端工作模式进行数据透明传输。LQ8110E需要配置数据服务器的IP地址和端口号,端口号即数据服务器Socket需要监听的端口。数据服务器监听该指定端口即可实现与LQ8110E通信。 LQ8110E上电后,首先自动上传ID号,并等待数据服务器进行心跳握手回复。此时数据服务器回复3个十六进制“00H”, LQ8110E收到后进入正常工作模式,之后数据服务器便可与LQ8110E进行数据通信。LQ8110E向数据服务器发送十进制的风量、负压、电动机电参数等数据,云端数据服务器将接收到的移动客户端控制信号发送给LQ8110E,实施控制。
2.2 数据服务器与移动客户端通信
数据服务器与移动客户端建立通信是系统的关键技术[7-11]。系统采用Socket和Server Socket建立基于TCP/IP协议的网络通信。数据服务器首先建立接收监测数据的服务套接字用于接收数据,同时建立发送监测数据的服务套接字向移动客户端发送数据。数据服务器通过Server Socket创建,即用Server Socket对象监听移动客户端的Socket连接。移动客户端应用程序采用Socket类,该类通过指定数据服务器的IP地址和与数据服务器相同的端口号来连接数据服务器。数据服务器的IP地址存储在字符串资源文件中,通过getResources().getString(R.string.ip)获取IP地址字符串。完成Socket实例创建后,相应的Socket连接即建立。客户端应用程序通过socket.getOutputStream()方法获得输出流,将输出字节流包装成PrintWriter字符流,通过pw.Write()方法将内容写入PrintWrite中,调用pw.Flush()方法刷新数据输出过程。此时如果连接过程没有异常,则内容将会发送到数据服务器中。socket.getInputStream()方法接收数据服务器传回的数据,并将该数据流包装成带缓存的字符流,通过read.readLine()方法获取返回的数据。当数据发送/接收完成后,关闭所有用到的流,以节省移动客户端操作系统的内存开销。数据服务器与移动客户端的Socket通信流程如图2所示。
图2 数据服务器与移动客户端的Socket通信流程
Fig.2 Socket communication process between data server and mobile client
3.1 移动客户端操作系统选择
当前移动客户端的主流操作系统为iOS系统和Android系统。其中Android系统是目前世界上使用范围最广、使用人数最多的开源操作系统,具有强大的应用层API(Application Programming Interface, 应用程序编程接口)和丰富的传感器功能。其开放性为应用程序的开发提供了广阔的创新空间,并能与Google完善的服务体系实现无缝结合,即使各类应用功能各异,也不影响数据同步和软件兼容。因此,煤矿主要通风机远程无线监控系统的移动客户端选择Android系统为开发平台,以便客户端软件更具有通用性[12]。
3.2 移动客户端功能模块设计
移动客户端应用程序的主要功能包括:① 客户端Socket通信;② 采用Android系统自带的SQLite数据库对接收到的数据进行解析并存储;③ 监控主界面数据实时显示和刷新[8];④ 将控制信号发送给数据服务器。按照上述功能设计相应的模块并融入人机界面设计中。移动客户端人机界面主要包括用户登录界面、监控主界面、温度历史曲线界面、风量/负压历史曲线界面、电参数历史曲线界面和控制界面。
3.2.1 SQLite数据库解析和存储
Android系统集成了一个轻量级的数据库SQLite,且Android SDK对SQLite数据库的相关操作进行了封装[13]。Android.database.sqlite包中封装了很多与SQLite数据库操作相关的类,常用的如SQLiteOpenHelper类和SQLiteDataBase类。SQLiteOpenHelper类用来管理数据库的创建和版本更新,其具有的方法包括onCreate()和onUpgrade(),onCreate()是第一次创建数据库时调用的方法,onUpgrade()是数据库版本号发生改变时Android系统自带的调用方法[14-15]。
客户端应用程序采用SQLite数据库保存主要通风机历史监控数据,需自定义SQLiteOpenHelper的子类,并重写onCreate()和onUpgrade()方法。
SQLiteDatabase类主要用于对数据库进行增、删、改、查等操作,移动客户端应用程序通过该类提供的方法可以方便地对数据库进行相应操作。
在移动客户端应用程序编写中,为了查询和显示风量、负压、温度、电参数历史曲线,需要创建4个数据库表,分别用来保存风量、负压、温度、电参数信息。每个表的字段信息与接收到的数据服务器发送来的信息对应。
3.2.2 用户登录界面
用户登录界面主要由TextView(文本显示)、EditText(文本编辑)、Button(按钮)控件组成。客户端应用程序将数据服务器的IP地址作为用户名,端口号作为密码。应用程序为登录按钮注册了监听事件SetOnClickListener()方法。点击登录按钮,系统自动调用监听事件的OnClick(View view)方法,在该方法内部判断用户输入的用户名和密码是否正确,如果正确就通过Intent类实现页面跳转功能,否则提醒用户输入的用户名和密码错误[9]。
3.2.3 监控主界面
监控主界面用来集中显示移动客户端接收到的煤矿主要通风机实时监控数据。监控主界面包括功能按钮区域、现场监控数据显示区域、监控数据刷新频率和频率选择区域。监控主界面对应main_activity.xml布局文件,采用线性布局作为其根布局,由Button、TextView和Spinner(下拉菜单)控件完成其功能。
在监控主界面中,可通过功能按钮调用温度历史曲线界面、风量/负压历史曲线界面、电参数历史曲线界面和控制界面,后台分别对应Button控件的点击事件,对应的响应为页面跳转功能。在现场监控数据显示区域,设备号显示当前运行的通风机号,风量、负压信息栏对应当前时刻的通风机风量值和通风管路负压值;电参数信息栏实时显示2台电动机的电压、电流、功率和功率因数;温度信息栏显示2台电动机当前时刻的前轴、后轴、定子1、定子2、定子3的温度值。
监控数据刷新频率和频率选择区域中,界面刷新实质是要求客户端应用程序每隔指定的时间向数据服务器发起一次会话请求,而指定的时间就是设置的刷新频率时间。应用程序采用Timer和TimerTask类实现定时发起会话请求的任务。
3.2.4 温度、风量/负压、电参数历史曲线界面
历史曲线界面主要通过调用保存在数据库中的历史监控数据,将监控数据以曲线图的方式展现给用户。曲线图的绘制步骤:创建画布、获取数据、绘制曲线。Android API中的android.graphics包提供了完整的画图工具。重写View类的onDraw(Canvas canvas)方法,该方法提供了画布类的实例canvas,此时画布是空的。历史曲线的数据保存在代表不同监控参数的数据库表中,获取数据的过程就是从SQLite数据库表中查询数据的过程。有了历史数据和画布就可以在画布上绘制曲线,android.graphics包中的Paint类为画笔工具,主要用来设置画笔属性。调用canvas.drawLine()方法绘制曲线,其中Paint实例对象将作为参数传入该方法。曲线的纵坐标为保存在数据库中的历史数据,横坐标为数据采集时间。
3.2.5 控制界面
控制界面主要用来在紧急情况下远程操作主要通风机电动机的启停和现场风门的开关。登录控制界面需要权限,用户必须输入正确的控制密码后,才能对控制界面的按钮进行操作。
4.1 测试环境
系统以魅族MX4型智能手机为移动终端,其采用Android 4.0.4操作系统。系统测试平台搭建在某煤矿主要通风机监控系统中,以PLC为核心控制模块,数据服务器放置在调度室,分配固定IP地址。工作人员通过移动客户端对主要通风机运行情况进行实时监控。
4.2 功能测试
按要求完成系统配置后,对移动客户端的所有功能模块进行现场测试。首先在用户登录界面输入用户名和密码,验证成功后进入监控主界面。监控主界面自动显示主要通风机当前的风量、负压、电参数及各部分温度等信息。点击监控主界面上的“温度曲线”、“风量/负压曲线”、“电参数曲线”、“控制界面”按钮,自动弹出相应的参数显示界面或控制界面。在控制界面上,操作人员输入正确密码后,可对主要通风机电动机和风门进行控制。系统功能测试结果如图3所示。
(a) 监控主界面
(b) 控制界面
图3 系统功能测试结果
Fig.3 System function test results
基于移动平台的煤矿主要通风机远程无线监控系统采用GPRS DTU模块将现场监控数据通过无线网络发送到云端数据服务器上,采用Socket编程方式使移动客户端通过3G、4G或WiFi无线网络从数据服务器上远程读取现场监控数据。该系统有效解决了煤矿主要通风机监控系统容易沦为“信息孤岛”的问题,无需专门布线,通过移动网络即可将主要通风机监控数据传送至云端数据服务器,满足用户随时随地接入系统的需求。
参考文献(References):
[1] 吴新忠,任子晖,马小平,等.煤矿主要通风机在线监控系统研究现状及展望[J].煤炭科学技术,2009,37(12):54-57.
WU Xinzhong, REN Zihui, MA Xiaoping, et al. Research status and outlook of on-Line monitoring and control system for mine main ventilator[J].Coal Science and Technology,2009,37(12):54-57.
[2] 马小平,胡延军,缪燕子.物联网、大数据及云计算技术在煤矿安全生产中的应用研究[J].工矿自动化,2014,40(4):5-9.
MA Xiaoping, HU Yanjun, MIAO Yanzi. Application research of technologies of Internet of things, big data and cloud computing in coal mine safety production[J]. Industry and Mine Automation,2014,40(4):5-9.
[3] 董明远.基于GPRS的通信技术在油井监测系统中的应用研究[D].北京:中国石油大学(北京),2010.
[4] 耿东久,索岳,陈渝,等.基于Android手机的远程访问和控制系统[J].计算机应用,2011(2):559-561.
GENG Dongjiu, SUO Yue, CHEN Yu,et al. Design and implementation of Android phone based access and control in smart space[J].Journal of Computer Applications,2011(2):559-561.
[5] 马小平,吴新忠,任子晖.基于移动互联的煤矿通风远程监控技术[J].工矿自动化,2016,42(3):7-12.
MA Xiaoping, WU Xinzhong, REN Zihui. Remote monitoring technology for ventilator of coal mine based on mobile Internet [J]. Industry and Mine Automation,2016,42(3):7-12.
[6] 胡永利,孙艳丰.物联网信息感知与交互技术[J].计算机学报,2012,35(6):1147-1162.
HU Yongli, SUN Yanfeng. Information sensing and interaction technology in Internet of things[J].Chinese Journal of Computers,2012,35(6):1147-1162.
[7] 周军.基于Android手机远程控制的设计与实现[J].工业设计,2015(5):108-110.
ZHOU Jun. Design and implement of remote control based on Android mobile [J]. Industrial Design,2015(5):108-110.
[8] 刘洁.基于移动互联网的煤矿安全智能监控系统设计[J].软件,2011(12):36-38.
LIU Jie. The design of intelligent mine safety monitoring system based on mobile Internet[J].Software, 2011(12):36-38.
[9] 李光明,孙英爽,党小娟.基于安卓的远程监控系统的设计与实现[J].计算机工程与设计,2016(2):555-560.
LI Guangming, SUN Yingshuang, DANG Xiaojuan. Design and implementation of remote monitoring system based on Android[J]. Computer Engineering and Design,2016(2):555-560.
[10] 龚炳江,唐宇敬.Android平台下煤矿瓦斯监控系统客户端研究[J].煤矿安全,2013,44(4):122-124.
GONG Bingjiang, TANG Yujing.Research of coal mine gas monitoring system client on Android platform[J]. Safety in Coal Mines, 2013, 44(4):122-124.
[11] GENG Xueyu, WU Shunyao, WANG Jinlong, et al. An effective remote control system based on TCP/IP[C]//Proceedings of International Conference on Advanced Computer Theory and Engineering,Phuket,2008:425-429.
[12] BURNETTE E. Hello, Android: introducing Google's mobile development platform[M].Raleigh:Pragmatic Bookshelf,2009.
[13] OWENS M.The SQLite database engine [J]. C/C++ Users Journal,2004,22:6-15.
[14] SHU Xianhua, DU Zhenjun, CHEN Rong. Research on mobile location service design based on Android[M].Beijing: IEEE Xplore,2009.
[15] FISHER M,ELLIS J,BRUCE J.JDBC API tutorial and reference[M].New Jersey:Addison-Wesley Professional,2003.
SHEN Ruijie1, WU Xinzhong2, NIU Honghai3, ZHANG Zhaolong2,XIA Lingxiang2, ZHOU Cheng2
(1.Xuzhou Education Bureau, Xuzhou 221005, China; 2.School of Information and Control Engineering, China University of Mining and Technology, Xuzhou 221116, China;3.Nanjing Nari Relays Electric Co.,Ltd., Nanjing 211106, China)
Abstract:The main ventilator room of coal mine is remote and difficultly covered by wired network, so as to cause main ventilator monitoring system falling into information island. For above problem, a design scheme of remote wireless monitoring system for coal mine main ventilator based on mobile platform was put forward. The system uses a GPRS DTU to communicate with PLC for collecting field monitoring data, and the data is uploaded to a cloud data sever through GPRS network. On the other hand, mobile client based on Android system accesses the cloud data sever by use of socket communication mode through 3G, 4G or WiFi wireless network, so that users can remotely monitor operation status of coal mine main ventilator anytime and anywhere. The test results verify feasibility of the system.
Key words:coal mine ventilator; main ventilator; remote wireless monitoring; mobile platform; mobile client; cloud data server; GPRS DTU; Socket communication
收稿日期:2017-03-01;
修回日期:2017-09-20;责任编辑李明。
基金项目:“十二五”国家科技支撑计划资助项目(2013BAK06B08);江苏省重点研发计划(产业前瞻与共性关键技术)资助项目(BE2016046)。
作者简介:申瑞杰(1974-),男,江苏徐州人,硕士,研究方向为计算机应用及教学,E-mail:shenruijie@163.com。通信作者:吴新忠(1976-),男,江苏睢宁人,副教授,博士,主要研究方向为机电设备的状态监测、面向应用的智能控制,E-mail:wxzcumt@126.com。
引用格式:申瑞杰,吴新忠,牛洪海,等.煤矿主要通风机远程无线监控系统设计[J].工矿自动化,2017,43(11):30-34.
SHEN Ruijie,WU Xinzhong,NIU Honghai,et al.Design of remote wireless monitoring system for coal mine main ventilator[J].Industry and Mine Automation,2017,43(11):30-34.
文章编号:1671-251X(2017)11-0030-05
DOI:10.13272/j.issn.1671-251x.2017.11.007
中图分类号:TD724
文献标志码:A 网络出版时间:2017-10-27 08:39
网络出版地址:http://kns.cnki.net/kcms/detail/32.1627.TP.20171027.0839.007.html