UPS监控软件设计
扫描二维码
随时随地手机看文章
摘要:设计了一个UPS监控软件,以监视UPS的实时状态,控制UPS进行保护和切换的参数、诊断和开关排程等。
关键词:UPS;监控软件
1 UPS监控软件的功能
UPS监控软件的作用是用来监视和控制UPS。其中,监视功能是给一般用户使用的,而控制功能是给具有特权用户使用的。对于一般用户只能读取电源事件和数据信息,供用户分析、判断UPS故障用;对于具有特权的用户,就可以对被监控的UPS进行诊断、测试、配置参数等操作。具体来说,有以下几个方面:
1)各种图形用户界面显示UPS的输入电压、输出电压、输入频率、输出频率、电池电压、输出电流等参数,以掌握当前UPS的实时状态;
2)可查看UPS的事件日志和数据日志,全面分析电源的历史状况;
3)灵活的事件管理与告警方式,以便系统管理员或用户采取相应的应急措施;
4)无人值守时发生严重电源故障情况下的文件自动保存并关闭系统,使已做的工作不会因电源故障丢失;
5)可对UPS的运行参数和关机参数进行设置;
6)可预定UPS的关机、重启和测试计划;
7)中、英文界面,能适应各种主流操作系统。
2 监控平台的设计
2.1 监控界面设计
如果要实现UPS的监控功能,很明显,一个窗体是不能满足要求的,必须采用多窗体界面。为了程序能同时打开多个文件,使用多文档界面MDI(Multiple Document Interface)编程。MDI是指在一个窗体中能够建立多个子窗体的操作界面,它允许程序同时显示多个文档,每个文档显示在它自己的窗口中。文档或子窗口被包含在父窗体中,父窗口为应用程序中所有的子窗口提供工作空间。在运行时,子窗体显示在MDI窗体工作空间之内(其区域在父窗体边框以内及标题与菜单栏之下)。当子窗体最小化时,它的图标显示在MDI窗体的工作空间之内,而不是在任务栏中。图1为该监控平台的主窗体。
图1 UPS监控界面平台主窗体
由于该软件的设计得到了(温州)中国鸿宝电源有限公司的大力支持,为了表示感谢,在该软件的运行前先显示该公司的标志画面,也就是给该软件添加一个程序封面。程序封面的设计有2种方法:多窗体编程方法和隐藏控件方法。前者是在程序封面窗体上放置一个时间控件,待设定的时间后自动关闭封面切换到主窗体,为了能够人为地切换封面和主窗体,可在封面窗体鼠标单击事件中增加相应的代码;后者是在程序运行时使用Visible属性,首先,将主窗体上的全部控件隐藏,然后,在主窗体内进行程序封面的演示,延时一定时间后再恢复所有控件的显示,如果主窗体内的控件很多,可以将这些控件设计在一个容器控件上,这样只要设置该容器控件的Visible属性即可。
由于UPS监控软件适合两种用户,所以接下来的是登录窗体和注册窗体的设计。为了用多种图形界面显示UPS的实时状态,该软件设计了4种窗体专门用来显示UPS的运行参数及其状态。在数据日志中,用户可以自由设定历史数据存储周期,并借助数据列表回放UPS的运行状态,分析UPS的某一次异常事件,全面了解UPS的运行状态与走势。另外,还有事件日志、计划任务、事件及其反映、遥控、UPS运行参数和关机参数设置等窗体。可自主设置UPS的运行计划,检测计划系统可按用户事先选定的项目以一定周期进行自检,同时,系统还可按用户的需要预约UPS的开机、关机时间。
根据上述监控软件的功能,可以设计该监控平台的菜单结构如图2所示。
图2 监控界面平台的菜单结构 [!--empirenews.page--]
2.2 软件实现
该软件包含2个部分:数据库部分和应用程序部分。在本程序里面,将使用Microsoft Access 2000来建立数据库,使用VisualBasic6.0来编制应用程序。数据库部分包含3个表格:用户表,事件日志表和数据日志表。用户表中包含该用户的帐号,密码和用户类型;事件日志表中包含日期,时间,事件描述,事件处理等各项内容;数据日志表中包含日期,时间和UPS的主要运行状态参数。
要使用该软件必须输入用户名和密码,软件根据数据库中的资料判断该用户的注册类型,决定该软件的使用权限。如果没有这个用户,则请求用户注册成为新用户。用户注册时,要填写一些必要的个人信息,如果该注册名已经存在,系统将要求采用其它的用户名重新注册,保存后存放到用户表中去。只有系统管理员级别的用户才能使用该软件的所有功能,一般用户只能使用该监视方面的功能。
电源监控软件开发的关键环节是如何实现计算机串并口与电源设备的通信(即计算机采集电源设备送出的状态信号,经分析处理后在终端上显示或发出控制信号送往电源设备),而最简单的信息传送方式就是使用串行通信。VB中提供了一个重要的通信控件:MSComm。在本程序中使用到该软件的5个重要属性:CommPort,Settings,PortOpen,Input,Output。Settings属性设置为“1200,N,8,1”。PortOpen属性使用前必须打开,用完后必须关闭。图3是该监控软件的主流程图。
图3 上位机监控软件主流程图
该软件包含对30多种电源事件的处理,处理的方式有:通知系统管理员,执行命令文件,发送电子邮件或传呼信息给指定的用户报警,在严重的情况下执行文件自动保存后关闭系统。这里主要通过调用系统的API函数来实现。实际上,在整个软件的编写过程中,很多子程序都用到了相应的API函数调用。使用Windows API,可以访问常用代码库,使用通过测试的和认证过的代码,获得跨平台的兼容性,得到一个更小巧的应用程序。
该软件通过输出电流来推算负载百分比,而蓄电池的电压可以反映电池的剩余容量,所以程序通过测量电池电压并查表来近似推算蓄电池的剩余容量。并通过当前输出电流和计算得到的电池剩余容量估算出电池的剩余放电时间,再根据得到的剩余放电时间来决定是否需要进行计算机的自动保存操作。如果自动存档时,档案未赋予文件名,软件以temp格式暂存或离开,供电系统正常后,用户还可查看上次关闭Windows时关闭的应用程序名称和储存的档案。
由于该软件要适应各种主流操作系统,如Win9X和Win2000。当文件自动保存后,要退出操作系统,安全关机。这时,要注意两类操作系统的区别。在Win9X中退出操作系统,只需调用一个底层的API函数ExitWindowsEx()就可以了,但是Win2000用的是NT的内核,Windows NT不象Win9X和DOS那样可以随意进行底层的操作,它非常注重系统每个进程的权利(这也是为什么Win9X和DOS底下病毒成灾的原因),在Win2000下,要退出操作系统,必须赋予它足够的权限。图4是关机子程序流程图。
图4 关机子程序流程图
为了绘制UPS各个运行参数的实时平滑曲线,得到扫描的效果,本程序中使用了一个重要的API函数BitBlt。在主窗体的菜单中,“窗口”主菜单在设计时,选取“显示窗口列表”项。这样,不用编写任何代码,“窗口”主菜单下就会自动显示MDI窗体的已打开子窗体的列表。其它子菜单的程序也很简单,只需调用MDIForm对象的Arrange方法就可以了。“语言”菜单下的“英文”或简体中文,编程的思路和过程是一样的,只不过是做做翻译工作而已。对于菜单中的“关于UPS监控软件”,主要是获得注册表中的一些系统信息,Visual Basic开发软件本身也带有这方面的例示窗体和源代码,可以根据需要作相应的改变。
3 结语
该软件在Windows98和Windows2000下调试通过,其功能也基本上能满足一般UPS监控系统的要求。不过,程序运行时总觉得不是很流畅,这是因为当一个窗体界面的设计中要容纳多张图片和多个控制时,将出现窗体显示速度明显变慢的现象。为此,将“界面设计窗体”和“功能实现窗体”分开处理,基本可以解决这一问题。即在设计时根据需要设计漂亮的界面,但是在全屏运行时将该界面复制到剪贴板上,然后将其作为一张图片粘贴在功能实现窗体的背景上。这样,从外观上看效果相同,但是显示速度明显加快。不过,不可避免地增加了程序本身的存储容量。