基于测量船网络的分布式机房环境监控系统实现
2015-02-23靳建彬黄国雄段方振
靳建彬,黄国雄,段方振
(中国卫星海上测控部,江苏江阴214431)
基于测量船网络的分布式机房环境监控系统实现
靳建彬,黄国雄,段方振
(中国卫星海上测控部,江苏江阴214431)
针对海上测控任务对设备工作性能和状态的高要求,基于测量船局域网开发了分布式机房环境自动化监控系统。系统通过传感器进行数据采集,基于Socket技术传输数据,最后以WEB方式发布各机房的温湿度等数据,并提供历史数据的查询和报警功能,完成对机房环境自动化、网络化的实时监控。
远程监控,分布式,WEB,温湿度,自动化
0 引言
随着信息技术的不断发展,自动化监控技术广泛应用于工业生产、仓库、图书馆等重要场所,为生产和环境安全提供了重要的监测手段。
远洋航天测量船特装设备是完成测量、控制任务的核心装备,必须保证装备工作在合适的机房环境中,才能保持最好的性能和状态。目前,测量船各机房的环境监测主要依靠指针式温湿度计,通过管理人员巡检并结合经验视情作出处理。这种人工式巡检方法,存在监测不及时、维护保养差、记录不方便、人为因素多等一系列缺陷,容易造成装备的腐蚀、锈蚀和损坏。
本文根据测量船机房的特点和需求,设计并实现了基于测量船网络的分布式机房环境监控系统,完成对机房环境全天候、网络化的实时监控。
1 系统的硬件结构
1.1 系统结构组成
基于测量船网络的分布式机房环境监控系统,其组成结构如下页图1所示,主要由数据采集终端、船内局域网络和远程终端组成。系统的主要功能是将数据采集终端获取的温湿度等环境数据通过测量船网络发送到服务器进行处理,用户通过WEB的方式进行监测、查看。
数据采集终端分布于各机房的监控节点,主要负责获取机房环境信息,完成与服务器的数据交互,包括温湿度传感器、通信接口、单片机、网络处理芯片、网络接口和电源模块。其中传感器接口用于单片机与温湿度传感器的通信;网络处理芯片用于网络通信物理层的处理;网络接口用于网络通信芯片输入输出接口。
图1 分布式机房环境监控系统组成框图
1.2 数字温湿度传感器
温湿度传感器包括模拟和数字两种,其基本原理相似。相比较模拟传感器,数字传感器输出信号为数字信号,不受外部环境的影响,抗干扰性好,可以远距离传输;数字传感器集成化程度高,体积小,可以简化系统设计。
本系统采用数字温湿度传感器模块来采集数据,选用瑞士进口的SHTXX系列传感器,具有高精度、低功耗、高可靠性等特点,且传感器的精度一致性好。
1.3 单片机
单片机采用RSIC指令集的AVR单片机,具有运行速度快、接口丰富、编程环境友好等许多优点。考虑到本系统对外接口不多,单片机不需要较多的IO端口,但是网络协议的处理需要较多的RAM、ROM空间,综合考虑速度、芯片体积、存储空间,选择Atmel公司的ATMEGA328单片机作为本系统的核心控制微处理器。
1.4 通用网络接口芯片
通用网络接口芯片一般采用并行总线接口,支持8/16位总线接口,数据传输速度快,但总线接口复杂,对时序关系要求较高,软件处理比较复杂,不适合在单片机系统中应用。在对网络接口速度要求不高的场合,采用SPI总线接口可以大大简化单片机接口软硬件设计。系统采用的MicroChip公司设计的ENC28J60芯片就是这样一种网络接口芯片,完全能够满足本系统需求。
2 软件系统的实现
2.1 软件设计思想
软件系统采用C#语言,基于.NET2.0和 SQLServer2005技术进行开发。软件系统的具体实现采用三层体系结构:表示层UI、业务逻辑层BLL、数据访问层DAL,3层之间通过调用接口函数联系,降低了耦合性,减少了代码的重用,也便于系统的维护。
图2 软件框架设计
2.2 系统功能及相关技术
软件系统的功能包括:
(1)服务器通过Socket通信完成与数据采集终端的数据交互;
(2)在服务器端对数据进行处理,将数据实时发送到WEB页面显示;
(3)定时将数据记录到数据库,提供查询功能;(4)数据超限报警功能。
下文详细介绍系统功能的具体实现及采用的相关技术。
2.2.1 基于Socket技术与采集终端进行数据交互
本文Socket技术主要用于服务器端与监控终端单片机之间的数据交换。Socket技术有两种形式:数据报套接口和流式套接口。流式套接口采用TCP协议,它提供了双向的、有序的、无重复的数据流服务,但需要进行多次握手检测,过程复杂,效率低。为简化监控终端单片机的数据处理,并考虑到系统对数据的要求,系统采用效率更高的数据报套接口。下面是服务端Socket通信关键代码:
(1)实例化基于数据报套接口技术的Socket对象socket=new Socket(AddressFamily.InterNetwork,SocketType.Dgram,Protocol Type.Udp);
(2)连接对应IP和端口的传感器
监控终端单片机按照设置的时间间隔从传感器读取数据,存入单片机缓存内。根据从服务器端接受到的不同指令数据,进行不同的处理。服务器端发送的数据指令包括:
(1)请求监测数据的指令;
(2)配置传感器的指令,传感器的配置包括节点名称、IP、端口、温湿度的上/下限值等信息;
(3)查询传感器配置的指令。
单片机对接收到的指令数据处置过程如图3:
图3 单片机对接收指令数据的处置图
2.2.2 多线程方式处理多节点数据
系统需要同时采集多个机房节点的数据,还要对获取的多个节点数据进行处理,因此,需要一个多线程的方式(如图3),即各机房采集设备使用不同的线程读取采集数据,之间互不相连,采集出来的数据放入一个公共的缓冲区中,供主程序处理。主程序经过固定的间隔将数据发送到WEB前端页面进行刷新显示;根据实际需要,经过设定的记录时间间隔将数据存入数据库,用于数据的记录和历史数据的查询、显示。
图4 多线程数据处理
系统启动后,开始运行主线程,初始化系统,根据实际网络中连接的传感器,启动相应的线程,并获取硬件系统采集的数据,写入内存中的数据缓冲区。根据系统设定的数据刷新间隔,定时从缓冲区读取数据发送到WEB页面显示,如果数据超出阈值,进行报警提示;根据系统设定的数据记录间隔,定时从缓冲区读取数据存入数据库,供用户查询。
系统的运行流程图如图5所示。
2.2.3 基于Ajax的WEB页面数据实时显示
图5是系统WEB显示页面,实时显示各个机房的温度、湿度、露点等环境信息和传感器的运行状态。为提高系统性能,前端采用AJAX技术实现。
图5 系统运行流程图
Ajax(Asynchronous JavaScript and XML),是综合异步通信、JavaScript以及XML等多种网络技术的新的编程技术,从用户的实际运行效果来看,通常形象地称为无页面刷新技术。系统显示页面中只有温湿度等采集的数据需要刷新显示,其他界面不需要更新,如果全页面刷新,则浪费网络带宽,降低系统性能。因此,采用Ajax技术实现局部页面自动刷新显示,增强了用户的界面友好性。
图6 系统WEB显示页面
2.2.4 图形化显示历史数据查询结果
系统提供了历史数据的查询功能,为了更加形象、直观地显示历史数据的变化趋势,系统采用CrystalReport技术实现数据的图形化显示。
Crystal Report(水晶报表)是功能强大的报表系统,集成于Visual Studio.Net开发环境中。可以从服务器获取数据,通过快速地开发导出报表或图表,将数据以直观、美观的界面显示。水晶报表的关键代码包括:
CryRepDataSet1 ds=new CryRepDataSet1();//实例化水晶报表
SqlDataAdapter ad=new SqlDataAdapter();
ad.Fill(ds.sensor_gather_data);//设置水晶报表实例的数据源
ReportDocument doc=new ReportDocument();//建对像doc.Load(Server.MapPath("CryRepJjb2. rpt"));//加载水晶报表
doc.SetDataSource(ds);//设置数据源
doc.SummaryInfo.ReportTitle="温度变化表";this.CrystalReportViewer1.ReportSource=doc;this.CrystalReportSource1.DataBind();//使用Crystal-ReportViewer1显示水晶报表,绑定数据
图7是温湿度历史数据的查询图表:
图7 温湿度数据查询图表
图7中,横坐标是时间轴,左边竖坐标是温度值,右边竖坐标是湿度值,蓝色曲线表示温度,橘红色表示湿度曲线。此图显示了有线-407机房一天内的温湿度变化趋势:机房温度值比较稳定,处于24°;湿度值稍有变化,介于45°和50°之间,处于允许的变化区间内。
2.2.5 基于RTX的实时超限报警
为了能够对超过限定温湿度的机房进行及时处置,系统开发了超限报警功能。
温湿度的阈值可以通过页面进行设置,如图8所示:
图8 机房传感器温湿度阈值设置页面
页面中包含传感器的主要信息参数,可以显示和修改传感器节点的名称、IP地址、采集端口、部署时间等属性信息,也可以设置此节点传感器的温湿度上限和下限,每个机房的温湿度阈值可以不同。
图8页面中的备注栏,里面填写的是与此机房关联的RTX(腾讯通)账号,如果系统监视的机房温湿度超过限定值,系统将通过RTX软件向相关的机房管理员发送报警信息(图9),提醒人员及时处理。报警信息包括:报警的机房名称、引起报警参数名称和当前值以及报警参数的规定数值范围。
图8显示,网络-439-7机房的湿度值为44.9,低于要求45最低值,向相关管理员发送报警提示。
图9 RTX报警消息
2.3 系统应用效果
系统部署于测量船内,用于监视和测量分布式机房节点的温度、湿度和露点等环境参数。监控的节点包括35个机房,各节点部署一个传感器获取环境信息,通过测量船网络联通系统的服务器。系统操作简单,不需要任何培训学习,只要具有权限的人员就可以在联网的任何计算机终端上通过WEB页面访问系统前端界面,查看各个机房的环境信息,极大减轻了人员巡视机房的工作量。
系统经过一年的测试运行,性能稳定,发现多起由于空调、除湿机等设备损坏导致机房温湿度异常的情况,并向管理人员报警提示,及时处置。
3 结束语
本文根据海上测控任务对测量船设备工作性能和状态的高要求,针对测量船分布式机房的特点,基于测量船局域网络设计并实现了分布式机房环境自动化监控系统,完成了对机房环境全天候、网络化的实时监控,实现了装备管理的自动化和信息化。结合测量船的实际需求,今后可进一步扩展系统的功能,实现对更多要素的监控。
[1]国家863中部软件孵化器.ASP.NET从入门到精通[M].北京:人民邮电出版社,2010.
[2]飞思科技产品研发中心.NET平台下Crystal Reports设计与开发[M].北京:电子工业出版社,2003.
[3]朱向庆,陈志雄.远程分布式温湿度实时监测系统设计[J].计算机测量与控制,2010,18(1):55-63.
[4]周乐钦,燕彩蓉,苏厚勤.基于Web-Socket协议的推送数据技术在监控系统中的应用研究[J].计算机应用与软件,2013,30(5):229-232.
[5]张妮,段文强,邵婷婷.基于单片机的温湿度监控系统设计[J].延安大学学报(自然科学版),2010,29(02):50-52.
Implementation of Distributed Room Environment Monitoring System Based on Measurement Ship Network
JIN Jian-bin,HUANG Guo-xiong,DUAN Fang-zhen
(China Satellite Maritime Tracking And Control Department,Jiangyin 214431,China)
Regarding to the high requirements of maritime tracking and control tasks to the working performance and status of equipment,this paper develops distributed room environment automatic monitoring system.The system collects data by sensor,transfers data based on Socket,publishes the temperature and humidity data of the room in the methord of WEB,the function of querying historic data and alarming is provided,real-time monitoring of room is realized by the way of automation and networking.
remote monitor,distributed,Web,temperature humidity,automatic
TP311
A
1002-0640(2015)02-0152-04
2013-12-04
2014-01-21
靳建彬(1984-),男,河北石家庄人,硕士研究生。研究方向:计算机网络通信。