基于VB的机房计算机电源监控系统电源与空调

2010-06-30    来源:ChinaAET    
为了能实时、高效、方便地监控、管理机房计算机电源设备,并实现对机房的计算机集中监控、少人值守的目标,本文提出了一个机房计算机电源集中监控系统方案。本系统的目标是:通过

  为了能实时、高效、方便地监控、管理机房计算机电源设备,并实现对机房的计算机集中监控、少人值守的目标,本文提出了一个机房计算机电源集中监控系统方案。本系统的目标是:通过相关软件、硬件的设计,实现由1台主机(上位机)通过单片机(下位机)监控多个机房中多台计算机的开关情况。即利用主机的监控软件与单片机进行通信,以实现对计算机电源的监控功能。本系统应具备如下功能:

  (1)通过键盘或鼠标对多台计算机进行开关控制并对整个机房的所有计算机进行开关状态的检测。

  (2)上位机与下位机能进行可靠、实时的通信。

  (3)界面设计清晰,功能齐全。备有菜单及各机房的电脑分布图,并带有右键快速菜单。

  (4)能根据不同机房中不同电脑台数自动调整布局。

  1 软硬件的选取及上下位机间通信协议的定义

  基于上述目标与功能,要实现本系统,首先要解决以下几个问题:

  1.1 主机与单片机之间通信信道的选取

  串行通信一次只传1个位,处理的数据电压只有一个准位,因此不容易漏失数据。如果再加上一些防范措施,数据漏失就更不容易发生了。串行通信端口(RS-232)是每部计算机上的必要配备,通常含有COM1与COM2 2个信道,一般的计算机将COM1以9 Pin的接头接出,而以25 Pin的接头将COM2接出。新一代的计算机均以9 Pin的接头接出所有的RS-232通信端口。通常与计算机连接的沟通接口是RS-232,它不仅实用简单,而且价格便宜。因此本系统采用RS-232串行通信方式用于上、下位机间的通信。

  1.2 监控软件开发平台的选取

  Visual Basic是Windows环境下的一个可视化软件开发平台。由于开放式的结构,Visual Basic允许外挂控件,因此有更多的厂商为Visual Basic撰写控件,供系统开发者选用,从而为开发者提供了更方便的系统开发方案。这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效地提高了应用程序的运行效率和可靠性。所以,本系统采用Visual Basic作为监控软件平台。

  MSComm是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件。MSComm控件提供了二种处理通信的方法:事件驱动法及查询法。

  (1)事件驱动法:OnComm事件是MSComm控件提供的惟一的事件。当有数据到达端口或端口状态发生改变或有通信错误产生时,都将触发OnComm事件,以捕获和处理这些通信事件和通信中产生的错误信息。通过查询CommEvent属性值,可以获得关于通信事件和通信错误的完整信息,进而进行处理。这是一种功能很强的处理串行口活动的方法,具有程序响应及时、可靠性高等优点。

  (2)查询法:MSComm控件的CommEvent属性返回通信中产生的事件和错误类型,由通信控件自动检测和跟踪通信状态后设置。因此,在小程序中,程序员可以在每个重要的程序功能之后通过检查CommEvent属性值来检测事件和通信错误。本系统采用查询法作为处理通信的方法。

  1.3 单片机型号以及芯片的选取

  单片机主要采用Intel公司MCS-51系列8031单片机,并使用MCS-51汇编语言开发。

  1.4 监控软件与单片机之间通信协议的定义

  主机与单片机要进行实时、可靠的通信,必须定义一套良好的通信协议。

  本系统的通信参数设置如表1所示,采用的通信协议如表2所示。


  其中:Roomadd:机房代码(即单片机的地址码),1个字节,由01H开始编码。

  Command:命令码,1个字节(命令码的格式见表3)。

  Byte count:数据长度,要监控的计算机总数量+1(最后1帧1为校验帧),1个字节。

  PCadd:PC编号,每个PC编号1个字节,由01H开始编码。

  Checksum:算术校验和,1个字节,是所有PC编号的算术相加后对256取模而得到的。

  Cmdresponse:单片机回应的采集数据,具体格式见表4。

  其中:D7为1,表示该PC状态为“开”;D7为0,表示该PC状态为“关”。PC地址由01H开始编码。约定00H为接收成功反馈信号。

 

1
3