分 布 式 机 房 监 控 开 发 平 台--总 体 设 计 方 案
该系统是对原广电机房监控系统的升级,由原来的B/S架构,升级为C/S架构,并新增了平面图显示模块以及将配置模块从整个系统中分离出来,而且,整个系统可以根据需求,灵活地调用各个模块,实现各项功能的动态增加、删除。站点机房的分布范围比较广,分布式机房监控系统实现了对各机房设备的集中监控和管理,包括供电设备、环境控制设备等。通过智能仪表以及各种传感器,机房监控系统可以获取机房环境的各种监测数据以及机房中设备的运行状态和各项性能数据,并将获取的数据以数据列表、二维曲线和平面图的方式显示出来,供机房工作人员进行实时查看、记录。
针对各站点机房分布地区比较广以及机房环境的复杂性、重要性,该系统主要有以下几个设计目标:
1) 用户实时获取各种设备的运行状态及数据信息;
2) 用户可以方便、直观的了解机房的环境情况及各设备的主要数据信息;
3) 根据用户提出的需求添加、删除、修改设备,但具体操作由我方控制,权限不开放给用户;
4) 系统可以长期正常、稳定地运行。
1)服务器端操作系统(OS)及软件操作系统可为WINDOWS服务器操作系统Windows Server 2000/2003/2008. Oracle 10g数据库系统
2) 服务器端硬件环境
CPU Intel 双核2.0GHZ;
内存 2G内存;
硬盘 500G;
硬盘格式 NTFS/FAT32格式;
网卡 100MEthernet网卡;
光驱 CD-ROM。
3)客户端操作系统及软件
操作系统为WindowsXP sp2及其以上或者Windows7Professional 中文版.NetFramework 3.5 Oracle 10g数据库管理系统
4)客户端硬件环境
CPU Pentium 4 2.0GHz;
内存 1G;
硬盘 80G;
磁盘格式 NTFS/FAT32;
网卡 100M Ethernet网卡;
光驱 CD-ROM。
开发语言:VB.NET
开发工具:Microsoft VisualStudio 2008
数据库平台:Oracle 10g数据库管理系统
利用Microsoft VisualStudio 2008开发工具,将每一个模块打包成.dll文件,在整个系统中直接调用.dll文件,并可根据需要添加或删除某一模块。该系统以数据库为基础,各模块直接与数据库进行连接、操作,然后在前台界面进行显示。
站点机房可能分布于各地,由于分布范围较广,如果安排人员定期检查会耗费大量的人力、物力和财力,并且可能无法及时得到设备的运行状态、数据信息以及机房环境信息。该系统就是利用传感器技术、分布式技术等各项技术,定时获取各设备的运行状态、数据信息及机房环境信息定时传送给特定的机构,并通过客户端实时、快速地了解到设备的运行情况及机房环境状况,一旦出现问题,可以迅速做出反应,保证各站点机房设备正常运行。
图2- 2 主界面各项菜单及功能
1)首页:菜单导航中的首页为地图导航,点击可以跳转到地图导航界面。
2)多路视频:菜单导航中的多路视频为实时视频查看模块,点击进入到实时视频查看可以观看到各站点机房所有摄像头的实时视频信息。
3)视频查询:菜单导航中的视频查询为视频录像查看模块,点击进入可以查看某一时间段内某一站点某一摄像头的视频录像信息。
4)视频设置:菜单导航中的视频设置可以对所有的摄像头进行设置,其中包括视频显示布局以及视频显示的顺序。
5)站点数据:菜单导航中的站点数据是站点机房中所有设备的运行数据的显示部分,包括二维曲线、数据列表、开关量列表以及数据下载信息,并可以查询某一时间内的设备运行信息。
6)报警设置:菜单导航中的报警设置是对所有设备的告警进行设置,包括告警级别、告警参数以及告警方式设置。
7)用户管理:菜单导航中的用户管理是管理员对所有的用户进行管理,包括查看用户信息、添加用户、删除用户以及修改用户信息。
8)日志查询:菜单导航中的日志查询是查看用户在系统中的所有操作,但只可以查看自己的操作记录,管理员可以查看所有用户的操作记录。
9)其他设置:菜单导航中的其他设置主要是数据库更新功能操作,用户提出需求后,由操作员进行设备的修改、添加、删除并生成配置文件,然后进行数据库更新,将信息写入到数据库中。
10)地图导航:地图导航是所有站点机房的分布图,地图上的锚点代表各站点机房,将鼠标放在锚点上可以显示该站点的经纬度信息,点击锚点可以跳转到数据曲线显示模块。
11)树形导航:树形导航的根节点代表各站点机房,子节点代表设备列表,点击机房可以查看该站点的平面图数据,包括数据信息和开关量报警信息,点击设备可以查看该设备的所有数据信息。
12)警灯报警:左边的警灯代表某一个需要特别监控的站点的告警,右边警灯代表所有站点的告警,其中红色代表紧急告警,黄色代表重要告警,蓝色代表一般告警,绿色代表正常,点击警灯可以进行报警查询
13) 个人中心:当前登录用户的信息,点击可以查看登陆用户的具体信息并可以进行修改。
系统总体架构如图3-1所示,整个系统以Oracle数据库为中心,配置模块将配置好之后的configure.xml配置文件写入到数据库中,并将设备的属性信息写入到数据库对应的表当中;采集程序从数据库中下载最新的configure.xml配置文件,并将采集到的数据写入到数据库当中;数据库向前台的各模块提供数据,各模块根据需要获取对应的数据信息,显示模块还需要configure.xml配置文件当中的设备坐标信息以及参数是否显示的信息来进行平面图数据的显示。
根据需求,该系统可分为以下几个模块,如图3-2所示:
-
1)数据采集模块:数据采集模块结合配置文件采集各站点机房的设备信息,并将采集到的数据信息进行处理,存储到数据库中,供其他模块使用。
2)配置模块:配置模块是对各站点机房的信息以及机房中的设备信息进行配置,包括站点的配置(添加、删除、修改站点信息)、基本信息配置(数据库、用户信息)、设备配置(添加、删除、修改设备信息和参数信息)、告警配置(设备告警内容信息)、平面图显示配置(设备在站点平面图的位置)等,配置完成后,生成配置文件,并写入数据库中。
3)地图导航模块:地图导航模块利用GMap.net技术进行地图的显示,并从数据库中获取站点的经纬度信息,利用经纬度定位,在地图中显示各站点的位置。
4)平面图显示模块:平面图显示模块是各站点机房的三维立体图以及各设备信息的显示模块,利用3D MAX技术绘制站点平面图,并将设备在对应的位置显示,包括设备的运行状态信息、数据信息等具体数据直观地显示出来,方便用户查看。
5)数据查询模块:数据查询模块可以查看所有设备的运行状态及数据信息,是站点机房中所有设备的运行数据的显示部分,包括二维曲线、数据列表、开关量列表以及数据下载信息,并可以查询某一时间内的设备运行信息。
6)视频模块:视频模块包括多路视频查看、视频设置、视频查询三个部分,其中多路视频查看是个站点机房实时视频画面的显示;视频设置是对所有的摄像头进行设置,其中包括视频显示布局以及视频显示的顺序;视频查询可以查看某一时间段内某一站点某一摄像头的视频录像信息。
7)报警模块:报警模块包括报警信息查询、报警设置两个部分,报警信息查询可以按站点查看所有设备的告警信息,报警设置是对所有设备的告警进行设置,包括告警级别、告警参数以及告警方式设置。
8)用户管理模块:用户管理模块是对所有用户进行管理,包括添加、删除、修改,并可以对当前登陆用户的具体信息进行修改。
9)日志查询模块:日志查询模块是查看用户在系统中的所有操作,使用户了解在系统中的操作。
10)数据库更新模块:数据库更新模块是根据配置墨汁完成的配置文件,将对应的设备信息写入到数据库中,提供给其他模块使用。
图4- 1 配置子系统工作流程图
如图4-1所示,配置子系统启动后出现配置主界面,用户在主界面选择要进行信息配置的系统及信息配置界面。信息配置界面有六个,分别配置基本信息、站点信息、设备信息、显示参数信息、告警信息及新增设备。配置过程中,同时进行XML读写操作。配置结束后,配置信息会保存到XML文件中。
2)站点配置界面
站点配置界面由一个Listview控件和五个Button按钮构成。站点配置界面加载时,配置子系统会从Configure.xml文件中读取所有Site节点的属性信息即站点信息,然后依次将其显示在Listview控件中。每条站点信息包括七部分内容:站点名称、注册时间、站点地址、经度、纬度、站点描述及站点平面图存储路径。
点击“添加”按钮可以打开“添加站点”窗口,执行添加站点信息操作。如图4-4所示,“添加站点”窗口可以配置站点信息的所有内容。经纬度方面,系统默认是东经北纬格式,并且注册时间默认显示当前系统时间。点击“确定”按钮后,窗口关闭,新添加的站点信息会显示在ListView中站点信息列表的最后。点击“取消”按钮,只执行关闭窗口操作。
在选中一条且仅一条站点信息后,点击“修改”按钮可以打开“修改站点”窗口,执行修改站点信息操作。如图4-5所示,“修改站点”窗口的界面布局和“添加站点”窗口完全一样,不同的是“修改站点”窗口打开后会显示选中的站点信息。需要注意的是,在添加或修改站点信息时,点击“确定”按钮后,配置子系统会对录入的经纬度数值进行合法性判断。
在选中一条或多条站点信息后,点击“删除”按钮,可以删除选中的站点信息。站点信息删除后,站点下的所有设备信息也会被删除。
在进行添加、删除、修改站点信息操作时,配置子系统会对Configure.xml文件中相应的Site节点进行修改。
点击“确定”按钮,保存所有更改并关闭窗口。点击“取消”按钮,放弃所有更改并关闭窗口。
3)设备配置界面
设备配置界面主要由左侧的“设备列表”和右侧的“设备信息”两个GroupBox容器构成。界面左上方是提供站点选择功能的ComboBox控件。界面右下方是“确定”和“取消”按钮。
点击“确定”按钮,保存所有修改操作,并且会对Configure.xml文件进行相应修改,最后关闭窗口。点击“取消”按钮,放弃所有更改直接关闭窗口。
设备配置界面加载时,配置子系统会从不同的XML文件中读取该界面中某些ComboBox控件的子项信息。“站点”对应的ComboBox的子项信息来自于Configure.xml文件中所有Site节点的SiteName属性值。“设备列表”中“设备”对应的ComboBox的子项信息来自于Info.xml文件中所有Instrument节点的值。其他ComboBox的子项信息也都来自Info.xml文件中的节点值,具体说明可以查看表4-5。
“设备列表”由“添加”、“全选”、“反选”、“删除”四个Button按钮、一个提供设备名称选择功能的ComboBox控件、一个用来显示同一站点下设备名称列表的Treeview控件构成。在选择站点后,配置子系统会从Configure.xml文件中读取指定站点下的所有设备名称,按照设备类型分类,以树状形式显示在TreeView中。其中父节点是设备类型名称,子节点是设备名称。一个设备类型下的所有设备名称都是指同一台设备,为了满足采集程序需要,将同一台设备分为几个部分,每个部分包含的设备信息不同。例如,图4-7中A40下的两个LX1,LX1指的是同一台A40型号的设备LX1,人为划分成两部分。
在“设备列表”的ComboBox控件中选择设备名称后,点击“添加”按钮可以在TreeView中增加一个新设备。新增加的设备也按照图4-7中的树状形式显示。需要注意的是,添加设备时,设备信息除设备位置、串口号、串口地址是空值外,其他设备信息都已设定为该类型设备的默认值。
选中一个或多个设备,点击“删除”按钮,可以将选中设备从设备列表中移除。在进行添加、删除操作时Configure.xml也会进行相应修改。
“属性”页显示设备的属性信息:设备名称、设备描述、生产厂商、设备位置、设备型号、参数个数、设备序列号及设备参数类型。设备位置指的是设备在机房中的位置。设备型号指的是设备类型。设备参数类型取值0、1、2,分别代表设备只包含开关量参数,只包含状态量参数,包含开关量参数和状态量参数。
“接口”页显示设备的接口信息:串口类型、波特率、校验位、停止位、数据位、串口号及串口地址。
“参数”页显示设备的参数信息。每条参数信息包括名称、英文名称、标准名称、通道号、单位、误差、精度、上限、下限、设备编号及类型。通道号指的是参数的相对ID。精度指数值型参数的数值精度。误差指的是仪表测量误差。设备编号取值0~7之间的八个整数,含义如下:0代表温度,1代表湿度,2代表烟感,3代表火感,4代表红外,5代表水浸,6代表稳压电源,7代表门磁。类型取值0、1,分别代表参数是开关量、数据量。
在设备列表中只有点击采集器时,“参数”页最右边一栏才会出现“全选”、“反选”、“添加”、“删除”按钮。如图4-13所示,点击“添加”按钮,弹出“参数配置”窗口,可以配置参数的所有信息。其中“物理类型”对应参数信息中的“设备编号”,“类型”对应参数信息中的“类型”即参数类型。选中一条或多条参数信息后,点击“删除”按钮即可从参数列表中移除选中的参数信息。
4)基本信息配置界面
基本信息配置界面由一个TabControl容器构成,该容器包含两个选项卡:“服务器信息”和“用户信息”。
基本信息配置界面启动时,配置子系统会从BasicInfo.xml文件中读取保存的信息,显示在“服务器信息”页面和“用户信息”页面。
在“服务器信息”选项卡中,可以配置服务器的IP地址、服务器上Oracle数据库的服务名、Oracle数据库的登陆用户名和密码。这些信息在连接Oracle数据库时需要用到。服务器信息配置结束后,点击“保存”按钮,信息被保存到BasicInfo.xml文件中。
“用户信息”选项卡主要由左侧的“用户列表”和右侧的“配置用户信息”两个GroupBox容器及四个Button按钮构成。用户列表中显示的是BasicInfo.xml文件中保存的用户名,即配置子系统配置好的用户信息。
点击一个用户名,可以在左侧显示该用户的用户名和密码两条信息。此时,“配置用户信息”中的两个TextBox控件是不可编辑状态。当点击“修改”按钮后,TextBox变为可编辑状态。点击“添加”按钮,两个TextBox控件会清空信息,并可以录入新的用户名和密码。选中一个或多个用户名,点击“删除”按钮,会执行删除用户操作。在执行完添加、修改、删除操作后,用户列表会显示最新的用户名。需要注意的是,用户名是20字符长度的中英文组合,密码是6位数字及小写字母组合。
点击“保存”按钮,BasicInfo.xml文件会做相应的添加、修改、删除改动。
5)告警配置界面
告警配置界面由一个GroupBox容器、一个ListView控件、三个Button按钮构成。ListView中显示已配置的告警信息,这些告警信息在界面启动时,从AlertConfigure.xml中读取显示出来。每一条告警信息包括三部分内容:设备类型、编号、告警内容。其中编号指的是一条告警信息在所有告警信息中的序号。
点击“添加”按钮,可以打开“添加告警信息”窗口。如图4-17所示,该窗口可以配置一条告警信息的所有内容。其中设备类型对应的ComboBox的子项信息来自于Info.xml文件的Instrument节点。点击“确定”按钮,除关闭窗口外,新添加的告警信息会显示在告警配置界面的ListView中,同时AlertConfigure.xml增加一条新的告警信息。点击“取消”按钮,只关闭窗口,不保存任何操作。
选中一条或多条告警信息,点击“删除”按钮执行删除操作。被选中的告警信息从ListView中移除,同时AlertConfigure.xml也会删除相应的告警信息。
6) 显示参数配置界面
参数配置界面主要实现两个功能:一是实现主要参数的配置,二是实现对站点的设备位置的定位功能。当主界面点击显示参数配置按钮时会弹出此界面,程序会读取配置文件Configure.xml中的信息。从“请选择站点”右侧的下拉框内选择要配置的站点,选择后界面会加载机房平面图,右侧选择要配置设备下面会加载站点的设备名的下拉框。点击下拉框选择设备后,下方会出现参数名的复选框,选中要保存的传感器参数,点击保存,则设备的主要参数信息设置完毕。
设备位置的定位通过鼠标拖动来实现。平面图右侧显示设备的名字,鼠标左键按住设备名拖拽至平面图设备处释放鼠标即可实现设备的定位。
1)Configure.xml
(1)文件结构
站点、设备、显示参数三类配置信息保存在configure.xml配置文件中。配置文件是以站点为单位进行配置的,站点包括站点信息以及站点下所有设备的信息。Root_configure是根节点,包含子节点Site。Site节点包含子节点Instrument。站点信息存储在Site节点的属性中。Instrument节点包含两个子节点:Interface节点和Parameter节点。设备的属性信息存储在Instrument节点的属性中。Interface节点存储设备的接口信息。Parameter节点包含子节点A,A节点存储设备的参数信息。
(2)Root_configure节点
Root_configure节点是根节点,其下包含许多Site子节点。
Site节点存储站点信息和设备信息。如图4-21所示,Site节点由8个属性节点和Instrument节点构成。Instrument节点存储设备信息。属性节点存储站点信息,各属性含义见下表:
表4- 1 Site节点的属性
Attribute |
说明 |
SiteID |
站点ID,是站点的唯一标识,自动生成不可改变 |
SiteName |
站点名称 |
Registertime |
站点注册时间(添加站点的时间) |
Address |
站点所在地址 |
Longitude |
站点所在位置经度 |
Latitude |
站点所在位置纬度 |
Description |
站点描述 |
ImagePath |
站点平面图存储路径 |