煤炭港口在线粉尘监测查询系统的设计与实现

2018-04-15 20:09李泽琦
电子元器件与信息技术 2018年8期
关键词:字段监测数据粉尘

李泽琦

(神华黄骅港务有限责任公司,河北 沧州 061113)

0 引言

当前,绿色发展理念已上升为国家发展的重大战略。粉尘污染作为煤炭港口生产的主要污染源,是煤炭港口关注的重点。只有准确掌握生产现场的粉尘污染情况,才能确定有效的污染治理方案,开展有效的治理。为了准确掌握生产现场的粉尘污染情况,需要在厂区架设粉尘监测设备进行粉尘污染程度监测。并开发一套在线粉尘监测查询系统,专门用于采集对比分析厂区各个点位的粉尘监测数据。

1 系统需求与设计

本系统的总体需求分为粉尘监测数据的采集,粉尘监测数据的存储处理,粉尘监测数据的统计查询,粉尘监测设备的管理,系统用户权限的管理几个方面,下面分别叙述每个方面的需求及设计思路。

粉尘监测数据的采集是整个系统的最关键的部分。只有实现了对粉尘监测数据有效及时的采集,才能够满足后续的其他需求。煤炭港口生产现场安装的粉尘在线监测设备全部都支持使用2G或4G移动网络传输粉尘监测数据。由于使用移动网络,在线粉尘监测设备一般都没有固定的IP地址,因此只能作为客户端连接到在线粉尘监测数据采集系统,按照一定的频率定时发送粉尘监测数据。粉尘监测采集系统需要监听特定的端口接收粉尘监测设备的连接,对粉尘监测设备发送的数据进行解码。由于现场粉尘监测设备发送数据的编码方式不一样,有的厂家的粉尘监测设备使用的是厂家私有编码,有的厂家的粉尘监测设备使用的是通用的环保212协议编码[1],因此粉尘监测采集系统需要同时支持这两种编码方式。

粉尘监测数据的存储处理是整个系统最基础的部分,只有将采集到的粉尘监测数据进行存储并处理,才能为后续的查询分析提供有效的支持。现场安装的粉尘在线监测设备发送数据的周期不一样,因此存储系统应该首先将采集到的原始数据进行初步存储,再根据一定的时间周期通过原始数据计算平均值、最大值、最小值等数据,并将计算的结果进行存储,以满足不同时间维度的查询分析要求。

粉尘监测数据的统计查询是整个系统面向用户的部分,用户直接从该系统中查询、对比、分析、导出粉尘在线监测数据。因此,该系统应灵活设计,根据设备位置、监测污染物类型、不同时间周期分别查询对比分析。

粉尘监测设备的管理及系统用户权限的管理是整个系统的辅助支撑部分,若对粉尘监测设备进行采集,首先要在系统中录入设备的信息,才能够识别区分不同的粉尘监测设备发送过来的粉尘监测数据。同时还需要对各个粉尘监测设备进行管理,确定是否采集存储某个设备发送过来的数据。系统用户权限管理为每个登陆系统的用户创建不同的权限,以保证粉尘监测数据的访问安全性。

2 系统技术选型与实现

为了快速的实现粉尘监测设备的数据采集和对比查询,系统选用Java语言进行系统开发,选用MySQL数据库进行数据存储,选用Tomcat作为Web应用服务器,选用Spring框架进行组件管理[2],选用Mina框架开发网络数据采集端[3],选用C3P0库作为JDBC数据库连接池,选用Quartz框架开发定时任务调度功能[4]。

首先,根据系统的功能模块创建相应的数据库表结构。

对于粉尘监测数据采集模块创建数据包表用于存储从粉尘监测设备采集到的数据:其中包括一个ID字段作为每条数据的唯一标识,设备ID字段用于标识所采集的粉尘监测设备,粉尘浓度字段用于保存接收到的粉尘监测浓度,接收时间字段用于保存粉尘监测浓度对应的接收时间,风速、风向、气压、温度、湿度作为可选字段保存接收到的气象数据。

对于粉尘监测数据的存储处理模块创建平均数据表和定时任务表。平均数据表用于存储按预定时间周期计算的粉尘浓度平均值:其中包括一个ID字段作为每条数据的唯一标识,设备ID字段用于标识所平均计算的粉尘监测设备,粉尘浓度平均值字段用于保存当前时间段内对应设备的粉尘浓度平均值,粉尘浓度最大值和最小值字段用于保存相应的最大值最小值,采样个数字段用于保存当前时段内采集到的粉尘浓度数据的条数,时间周期类型字段用于保存当前记录计算的时间周期类型(分别用不同的编码标识分钟平均、小时平均、日平均),计算时间字段用于保存当前数据的计算时间;定时任务表配合Quartz框架使用包含运行定时任务所需的相应配置信息。

对于粉尘监测设备的管理及系统用户权限的管理模块创建用户表、设备表、访问权限表、系统日志表。用户表用于保存系统用户的相关信息:其中包括一个ID字段作为每个用户的唯一标识,用户名字段作为用户登录的名称,密码字段作为用户登录的密码,登录时间字段保存用户最近一次的登录时间,是否在线字段保存用户是否在线的状态;设备表存储粉尘监测设备的信息:其中包括一个ID字段作为唯一标识,设备编码字段对应设备发送数据时的编码,设备是否可用字段代表设备发送的数据当前是否采集存储;访问权限表用于保存每个用户对于系统的访问权限:其中包括一个ID字段作为唯一标识,用户ID字段包括对应的用户ID,设备ID标识对应的设备,权限字段表示对应用户是否有权限查看该设备数据;系统日志表用于保存用户访问日志:其中包括一个ID字段作为唯一标识,用户ID字段表示对应的用户ID,记录时间字段表示对应日志的时间,操作类型字段表示用户进行的操作。

然后,使用相应的框架实现系统的各个模块。

使用Mina框架实现粉尘监测数据采集模。首先,定义一个解码器类实现ProtocolDecoder接口,在decode方法中对接收到的数据进行解析,根据接收数据的包头部信息区分设备使用的协议,根据不同的协议使用不同的算法对接收到的数据进行相应的解析,根据解析后的数据创建为一个Map对象。然后实现相应的协议处理工厂类使用该解码器类创建一个解码器。最后实现协议适配器类继承自IoHandlerAdapter类,实现其中的messageReceived方法,在这个方法中接收解码器对象解码后的Map对象,从中获取设备编码和对应的粉尘浓度值,从设备表中查找判断是否记录该设备发送的数据,如果是就将该条记录保存到数据包表中,并将该条记录缓存到内存中以备查询。

使用Quartz框架创建定时任务,定时读取数据包表中的数据根据定时任务表中的配置,定时计算粉尘监测浓度平均值及最大最小值并将计算结果存储到平均数据表中。

使用Java语言内置的JAX-RS规范[5],定义几个RESTful服务[6],分别用于接收用户登录、执行用户查询、用户管理、设备管理几个功能。对于网页端可以直接设计几个静态页面,使用前端的脚本调用后端实现的服务实现用户的登录和信息的查询设备的管理和用户的管理。

为了系统的初次登陆和初始化,需要在数据表中创建一个超级用户,默认拥有所有权限。然后再通过超级用户登录系统,创建系统的一般访问用户,录入系统初始采集的粉尘监测设备的编码信息,设置系统计算平均值和最大最小值的定时任务。

3 结论

以上实现了一个最基本的在线粉尘监测查询系统。由于系统设计使用了模块化松耦合的设计,可以几乎无限制的任意增加不同类型的粉尘监测设备和各种分析查询功能。同时,由于系统的查询接口使用RESTful服务定义,可以很方便的创建移动客户端对系统信息进行查询。因此,本系统具有很高的扩展性,系统可以和其他信息系统方便的集成,提供的数据将成为煤炭港口的粉尘治理的重要依据。

猜你喜欢
字段监测数据粉尘
图书馆中文图书编目外包数据质量控制分析
高压粉尘防爆电机过厚粉尘层的形成与分析
粉尘大战
GSM-R接口监测数据精确地理化方法及应用
光散射法粉尘仪在超低排放的应用
粉尘剂防治蔬菜病虫害
GPS异常监测数据的关联负选择分步识别算法
基于小波函数对GNSS监测数据降噪的应用研究
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述