文/邵彦斌
目前煤矿的瓦斯监测系统(包括瓦斯、通风等)采用的都是现场监控模式及有线局域网通讯方式,而煤矿安全管理人员及主管领导一旦离开了办公场所(出差、开会、下班等)即无法获得现场的实时信息,无法对突发事件进行快速响应和全面科学决策。
随着计算机和移动互联网技术的飞速发展,无线方式的瓦斯监测系统已成为必然的趋势,煤矿主管领导及管理人员可以随时随地利用手持设备(如手机、掌上电脑等)同数据库服务端进行交互信息,并能够实时的浏览矿端数据,进行数据查询、数据统计、曲线图显示等操作,从而满足煤矿安全生产信息化融合和移动化监控的需求,从而保证了煤矿企业安全高效的生产运作。
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。市场调研公司Gartner的数据显示,2017年Android和IOS的市场份额分别为85.9%和14%。Android平台的优势性主要体现在平台具有开放性,正因为其开放性才使得有丰富的硬件支持,便于软件开发,并且Android平台手机无缝结合Google的优秀服务。
煤矿安全移动瓦斯监测系统的功能主要是提供安全生产过程中,井下设备的数据监测。由此功能要向客户提供各个传感器设备的实时值和历史数据,从而使煤矿安全管理人员能实时的得到安全生产过程中所有的监控设备状态。煤矿安全管理人员通过这些功能,可以随时随地的浏览自己所关心的数据,从而能够整体把握安全生产过程中的数据趋势,更好的掌握生产现状。煤矿安全移动瓦斯监测系统功能图见图1。
可按照模拟量查询的传感器类型包括瓦斯、温度、负压、流量、风速、一氧化碳等。首先能够实时的浏览模拟量数据,具体显示的内容包括测点编号、地址、测点值、报警值、断电值等内容,其次可以按照测点类型、测点位置,以及起止时间条件进行相应的组合查询,将相应的结果以数据列表的形式显示在移动的终端设备上。以上的浏览显示都可以按照测点编号、测点名、测点值、时间等进行升降排序。
此外,对于模拟量数据,还支持曲线图显示。通过曲线图煤矿安全人员可以根据所显示的历史趋势,来推演未来的趋势,从而来掌握未来一段时间内煤矿安全生产状况。
可按照开关量查询的传感器类型包括开停、馈电、风门、水泵等。同模拟量查询显示的方法类似,可以浏览设备开停的实时状态,同时也支持对于历史数据的查询统计显示。
对于开关量数据,由于其数据状态有0、1、断线三种状态,可以支持状态图和柱状图显示。
图1:为煤矿安全移动瓦斯监测系统功能图
一旦系统监测到有报警、断电、断线、馈电异常、后备电源、通讯中断等异常数据状态时,系统可以发出报警信号和声音,以特殊的颜色状态醒目的方式推送至客户,不需要去查询实时的报警信息即可收到矿端的异常报警数据,从而对突发事件进行快速响应和全面科学决策,有效降低煤矿的安全生产事故,确保煤矿的安全生产经营。
为了在一定程度上保证数据的安全性,防止被恶意的盗取或破坏,同时为了提高浏览的响应的速度,根据应用需求特建立了不同的用户级别管理机制。在本系统中在登录的时候采取了不同的权限鉴定机制,通过对不同的用户进行权限认证,并依据此来确定相应的用户级别,从而分配相应的功能给对应的用户。
煤矿安全移动瓦斯监测系统通过将用户名和密码发送到移动监控服务系统进行验证,从而获得鉴权和用户分级结果,得到登录成功、用户名不存在、密码错误等状态信息和用户级别信息。只有在用户名和密码完全正确的情况下,方可登录成功,进行相应的功能界面,为不同级别的用户提供相应的功能界面浏览。
开发工具和主要开发技术.NET Framework4.6 & C#;Visual Studio 2015 旗舰版;Eclipse;Android SDK 5.0;ADT-18;SQL Server 2008;
服务器端运行环境为服务器的操作系统Windows 2008 Server中文版;WEB服务器:Internet Information Services (IIS) 7.0;其他环境:.NET Framework4.6。
移动终端的运行环境为操作系统Android5.0或以上版本。
3.2.1 数据交互的实现
对于煤矿安全监控系统采用的数据库是SQL Server2008,而Android客户端是不能直接访问SQL Server2008数据库的,怎么跟服务器数据库进行交互的呢?通过Web Service来充当服务器端的角色,对数据库进行相关的操作,提供接口,Android移动客户端正确调用按照Web Service提供的接口即可。Web Server的数据由XML进行描述的,因此在Android客户端接受到的响应数据格式也应该为XML,要想其变成终端可识别的信息,也必须进行XML数据的解析。
本系统编写的Web Server采用的在Visual Studio 2015旗舰版中使用C#语言编写,其中数据层业务都通过SqlDbHelper(数据库访问公共接口)来对完成。该类提供对数据库的表进行查询统计等功能,具体的接口规范说明如下:
//对数据库执行命令
public static int ExecuteNonQuery(string safeSql)
// 查询结果集中第一行第一列的值
public static int ExecuteScalar(string safeSql)
//创建数据读取器
public static SqlDataReader ExecuteReader(string safeSql, SqlConnection Connection)
// 执行指定数据库连接对象的命令,指定存储过程参数,返回DataTable
public static DataTable ExecuteDataTable(CommandType type, string safeSql, params SqlParameter[] values)
public static DataTable ExecuteDataTable(string safeSql)
// 取出数据
public static DataSet GetDataSet(string safeSql, string tabName, params SqlParameter[] values)
3.2.2 Android客户端通信模块设计与开发
移动客户端程序采取的是eclipse + ADT集成的Android开发环境,首先在AndroidManifest.xml中加入联网权限,然后通过HttpConnSoap这个类直接调用,其作用就是连接服务器,把Web Service上写的函数的返回值转化为数组类型。
解析XML格式的文本,可以使用dom、sax和pull等方式。因为pull的函数库较小,比较适合移动设备,而且是谷歌官方推荐的方法,于是在本系统中采用的是pull方法进行XML解析,解析XML数据后,应该把返回的结果显示到手机屏幕上。考虑到在移动终端同服务端大量的网络请求和数据处理操作,为了保证程序运行的效率,特采取多线程运行,主线程主要负责显示和更新UI控件,子线程的管理,而子线程主要完成同服务器端的数据交互,并向主线程传递更新UI信息。
基于Android的煤矿安全移动瓦斯监测系统经过了性能测试、功能测试和兼容性测试,实现了功能设计中所有的功能性和非功能性需求,是一个安全可信的智能移动终端应用。
基于Android的煤矿安全移动瓦斯监测系统实现了煤矿瓦斯监测同移动终端设备的有效结合,性能上保证了数据的实时性、准确性、有效性,具有良好的应用前景。煤矿安全管理人员使用Android系统的终端设备,可以随时随地了解监控设备的变化状况、趋势及异常报警信息,安全管理人员根据系统信息采取相应的决策,从而有效的预防事故发生,为煤矿的安全生产保驾护航。