资源描述
动力环境监控系统数据库扩展利用浅探
浙江省温州市电信分公司 王伟力
摘要:针对集中监控和数据库,以实例的方式论述在监控系统的扩展方面实现监控系统的扩展价值。
关键字:监控 数据库 SQL 报表
随着电信业务的迅速发展,电信设备的大量增加,需要使用大量的动力设备。动力设备不仅种类繁多,而且位置分散,无疑增加了维护的难度。随着电信企业改革的不断深入,对集中维护概念提出了更高的要求。不仅越来越多的局站实行无人值守或少人值守,需要通过一定的远程监控手段实时了解设备的运行状态,及时发现并处理设备故障;而且在动力环境集中监控系统中要综合MDF告警、传输电源头柜告警、局所安全防范、可燃气体告警、通信电缆充气防盗告警和门禁系统等等,统筹规划,统一建设。目前使用的艾默生公司的动力设备及环境集中监控系统(以下简称监控系统)正是适应这些要求,实现远程监控和集中管理,不但能有力地保障通信设备的正常运行和设备安全,同时可提高电信企业维护效率、降低维护成本。
如何实现监控系统的价值是多方面的,从对系统的理解、系统的应用、系统的扩展、服务保障等等每一个方面对监控系统价值的实现都有举足轻重的作用。这里我想就系统的扩展方面展开分析论述。
一. 依托艾默生公司的监控系统,实现集中监控、节省投资
根据中国电信集团公司的“五集中”要求,为节省投资,响应浙江省公司湖州会议要求,在动力环境集中监控系统中要综合MDF告警、传输电源头柜告警、局所安全防范、可燃气体告警、通信电缆充气防盗告警和门禁系统等,统筹规划,统一建设。
我们知道艾默生公司监控系统的RMS3202远端主处理器能提供两路透明串口通道,其中原监控系统的数据监控用了一路,剩下一路就空余了。利用这一路透明串口通道我公司现已完成了MDF配线架告警系统(该系统是宁波成功集团的系统)的接入。利用了这一小小的通道就大大节省了重新分配传输资源、购买传输设备等的重复投资;也大大缩短了MDF配线架告警系统的建设周期。
同样传输电源头柜告警、局所安全防范、可燃气体告警、通信电缆充气防盗告警和门禁等系统的建设都可以依托艾默生公司的监控系统,以干节点、智能设备的型式接入监控系统,实现集中监控、节省投资的目的。
二. 根据工作经验对动力环境监控系统数据库中重要表的分析
随着动力环境监控系统容量和应用的不断扩大,监控系统数据库里的表的数量也不断增加,到目前温州市局数据库的表就已经达到100多张,每个表在数据库里都对应不同的应用和存储过程,由于厂家在这方面的技术保密使得我们只能通过平时的实践摸索来了解和分析不同表的作用,以便更好的为系统功能的扩展和充分利用监控系统数据库资源提供基础。
下面是我对目前数据库不同表的理解和分析,个人见解仅供参考:
AlarmChange----新增的为告警数据获取模块使用的表
BAlarmChange----备份新增的为告警数据获取模块使用的表
BkHisAlarmData----备份的历史告警族表
BkHisBatteryData----备份历史蓄电池数据族表
BkHisControlQueue----备份历史控制命令数据族表
BkHisData----备份历史数据族表
BkHisEngineData----备份历史油机数据族表
BkHisStaticsData----备份历史统计数据族表
BkManaFreshCard----门禁数据表
BkManaOperateRecord----备份管理数据操作记录族表
BkManaService--------备份管理服务记录族表
BkRptChange----备份登陆记录族表
CardState----门禁数据表
CardType----门禁数据表
CfgClassPic----设备大类图形表
CfgEntireEquipment----监控设备全表
CfgEquipMaintain----传呼对象设置表
CfgEquipTypePic----设备子类图形表
CfgEquipment----监控设备表
CfgEquipmentPic----设备图形表
CfgHouse----监控局房表
CfgPort----端口设置表
CfgSamplerUnit----采集单元表
CfgSelfDefinePic----自定义图形表
CfgSignal----监控信号表
CfgStation----监控局站表
CfgStationGroup----监控局站分组表(PSMS439新增表)
CfgWorkStation----工作站表
ControlQueue----控制命令表
HisAlarmData----历史告警族表
HisAlarmData1----历史告警族表
HisAlarmData2----历史告警族表
HisBatTestRec----蓄电池试验历史数据族表
HisBatTestVal----蓄电池试验历史数据族表
HisBatteryData----历史蓄电池数据族表
HisBatteryData1----历史蓄电池数据族表(1-2月)
HisBatteryData2----历史蓄电池数据族表(3-4月)
HisBatteryData3----历史蓄电池数据族表(5-6月)
HisBatteryData4----历史蓄电池数据族表(7-8月)
HisBatteryData5----历史蓄电池数据族表(9-10月)
HisBatteryData6----历史蓄电池数据族表(11-12月)
HisControlQueue----历史控制命令数据族表
HisControlQueue1----历史控制命令数据族表
HisControlQueue2----历史控制命令数据族表
HisData----历史数据族表
HisData1----历史数据族表(1-2月)
HisData2----历史数据族表(3-4月)
HisData3----历史数据族表(5-6月)
HisData4----历史数据族表(7-8月)
HisData5----历史数据族表(9-10月)
HisData6----历史数据族表(11-12月)
HisEngineData----历史油机数据族表
HisEngineData1----历史油机数据族表
HisEngineData2----历史油机数据族表
HisEquipState----历史控制命令数据族表
HisStaticsData----历史统计数据族表
HisStaticsData1----历史统计数据族表
HisStaticsData2----历史统计数据族表
HisTimeData----抄表数据表
ManaAreaGrp----片区表
ManaAreaRight----区域权限表
ManaCard----门禁数据表
ManaClerk----管理数据表
ManaDelSchedule----删除进度表?
ManaDoor----门禁数据表
ManaDoorCard----门禁数据表
ManaDoorCard_505----505门禁特殊表
ManaDoorCtl----门禁控件注册信息保存表
ManaDoorGroup_505----505门禁特殊表
ManaEquipmentExtStru--设备扩展表(PSMS439SP2新增表)
ManaEquipmentExtend----设备扩展表
ManaFaultType----管理失败类型表?
ManaFreshCard----门禁数据表
ManaFreshCard1----门禁数据表
ManaFreshCard2----门禁数据表
ManaHouseState----局房管理状态表?
ManaOperFun----权限表
ManaOperGrp----操作权限组表
ManaOperRight----操作权限表
ManaOperateRecord----管理数据操作记录族表
ManaOperateRecord1----管理数据操作记录族表
ManaOperateRecord2----管理数据操作记录族表
ManaService----管理服务记录族表
ManaService1----管理服务记录族表
ManaService2----管理服务记录族表
ManaSpecGrp----专业组表
ManaSpecRight----专业权限表
QueryTableLocate----查询定位表?
RealTimeBatteryData----新增的为告警数据获取模块使用的表
ReportMakeOnTime----报表类数据表(定时打印使用)
ReportSignalDefine----信号关联使用的表
ReportSignalMap----信号关联使用的表
RptChange----登陆记录族表
RptChange1----登陆记录族表
RptChange2----登陆记录族表
RptEquipStateDefine----报表类数据表
RptEquipStateTime----设备累计运行时间表
RunAlarmMsge----实时告警表
StdClass----标准摸板表
StdCondition----标准摸板表(PSMS439变化表格)
StdOperation----标准摸板表
StdPart----标准摸板表
StdSampler----标准摸板表(PSMS439变化表格)
StdStationType----标准摸板表
StdType----标准摸板表
StdWorkStationType----标准摸板表
SuspectConnection----可疑连接表
TempCfgEquipment----动态配置修改设备表
TempCfgSignal--临时监控信号表(用于动态配置)
TempCfgStation----动态配置修改端局表
UserEquipment----用户未监控设备表
ValidFlagType----门禁数据表
dry_AccessRule----自定义报表模块所使用的表
dry_OperationType----自定义报表模块所使用的表
dry_OutField----自定义报表模块所使用的表
dry_OutFunction----自定义报表模块所使用的表
dry_OutRow----自定义报表模块所使用的表
dry_OutTable----自定义报表模块所使用的表
dry_Parameter----自定义报表模块所使用的表
dry_Report----自定义报表模块所使用的表
dry_ReportDir----自定义报表模块所使用的表
dry_RptCell----自定义报表模块所使用的表
dry_RptColumn----自定义报表模块所使用的表
dry_RptLabel----自定义报表模块所使用的表
dry_RptRow----自定义报表模块所使用的表
dry_TableJoint----自定义报表模块所使用的表
logrs----登陆相关表
zjr_AutoPrint----浙江省三统一报表用表(现停用)
zjr_DataSave----浙江省三统一报表用表(现停用)
zjr_Logs----浙江省三统一报表用表(现停用)
zjr_Report----浙江省三统一报表用表(现停用)
三. 充分利用监控系统数据库资源,以扩展的型式来反映维护、促进维护
监控系统采用的是Sybase大型数据库管理系统,具有安全性高,处理容量大的特点,适合于数据量大的管理系统。而对数据库的利用最直接直观的就是监控系统的查询、报表功能了。查询、报表功能为做好维护工作提供了有力的数据依据,比如蓄电池的放电曲线是表示蓄电池好坏的一个重要特征,通过监控,很容易就可以得到一条接近真实的放电曲线,并以此来评价电池的使用情况,要是没有监控系统是无法做到这一点的。
监控系统的查询、报表功能中的已有表格、功能毕竟是事先定义的,自定义功能也由于某些限制不能生成用户需要的所有报表、曲线。大家都知道象交换、传输每月都要提交话务量、接通率等月通报报表,那我们监控有没有办法也提交一份呢?我从工作实践中总结出一个方法:直接对Sybase数据库操作,生成用户需要的报表。听起来好像需要很强的数据库知识和编程技术,其实如果结合好办公软件(如微软Excel)就能方便的生成各种报表、曲线。这也是这篇文章论述的重点。
以下是我局目前监控系统月通报的部分图例:
图例1
图例2
图例3
从图例1可以看到这张表有12列,我介绍其中几列的生成过程:
1. 首先在Excel2000中建立数据库查询(如图例4),选用操作系统odbc已建立的监控数据库。
图例4
2. 输入密码后调出Microsoft Query(如图例5),然后添加你需要的表(如CfgStation),选相应的字段(如StationID、StationName),再将数据返回到Excel,这样就生成了图例1里的“序号”和“局名”两列。具体操作,请参考相关Excel帮助。
图例5
3. 有些统计、计算是无法用向导自动生成的,需要手动填写SQL语句。如第三列“开关电源交流电压告警次数”在图例5中有个“SQL”按钮,点它,输入以下sql语句:
select (CfgSignal.StationID-1),Count(CfgSignal.SignalName)
FROM CfgSignal, HisAlarmData
WHERE HisAlarmData.EquipmentID=CfgSignal.EquipmentID AND HisAlarmData.SignalID = CfgSignal.SignalID AND HisAlarmData.StationID = CfgSignal.StationID AND ((CfgSignal.SignalName Like "%线电压%") AND (HisAlarmData.StartTime>='20051001' And HisAlarmData.StartTime<='20051031' )) group by (CfgSignal.StationID-1)
union select (CfgSignal.StationID-1), 0
from CfgSignal
where CfgSignal.StationID not in (select distinct CfgSignal.StationID FROM CfgSignal, HisAlarmData WHERE HisAlarmData.EquipmentID=CfgSignal.EquipmentID AND HisAlarmData.SignalID = CfgSignal.SignalID AND HisAlarmData.StationID = CfgSignal.StationID AND ((CfgSignal.SignalName Like "%线电压%") AND (HisAlarmData.StartTime>='20051001' And HisAlarmData.StartTime<='20051031' ))) order by (CfgSignal.StationID-1)
这些语句想必懂一些sql的应该可以看懂,需要注意的是“CfgSignal.StationID-1”是为了去除“动力环境监控中心”它不是局却占用了局号为1的位置;group by语句是用来将相同局的多个重复数据组成一个;union后面的语句是用来给没有相应信号量的局填上“0”,以便在组成整张表时相应的局对应相应的统计数据,不至错位;order by语句用来排序。之后将数据返回到Excel就有了第三列,当然本应该多出一列“序号”,我将该列隐藏了(Excel的功能)。 后面的各列利用的原理基本相同,这里就不一一分析,需要注意的是“Like”语句的灵活运用。
图例2、图例3的图表生成是在图例1数据生成后利用Excel的图表功能直接生成的,图表是很直观的表现形式,方法很简单这里不作具体描述,可参考Excel的帮助。
通过这个列子说明结合好办公软件(如微软Excel)的数据库接口,我们不用复杂的编程工作就能方便的生成形式多变的各种表格、曲线和图表,这也正是扩展监控数据库的捷径。
参 考 文 献
章异辉.PSMS动力设备及环境集中监控系统(软件V.39)培训手册.深圳:艾默生网络能源有限公司,2002
10
展开阅读全文