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

2011-03-29 09:48:02来源: 互联网 关键字:串行通信  单片机  Visual  Basic

为了能实时、高效、方便地监控、管理机房计算机电源设备,并实现对机房的计算机集中监控、少人值守的目标,本文提出了一个机房计算机电源集中监控系统方案。本系统的目标是:通过相关软件、硬件的设计,实现由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为接收成功反馈信号。

2 系统总体设计模块

根据本系统要实现的功能,可以将系统划分为如图1所示的3个模块。

2.1 监控部分

监控部分可以分为监测和控制2个模块。监测模块的主要功能是对整个机房的所有计算机或某几台计算机进行开关状态的检测。主机通过串口向单片机发送监测信号,然后根据单片机的反馈信号(即模拟的计算机开关状态数据)在界面上显示出模拟状态。若没有收到单片机的反馈信号,则提示操作失败。控制模块的主要功能是对机房的所有计算机或某几台计算机进行开/关控制。主机通过串口给单片机发开/关信号。若主机收到单片机反馈的操作成功信号,则表示操作成功,在界面上显示对应计算机的开/关状态。若没有接收到单片机的操作成功反馈信号,则提示操作失败。

2.2 系统设置部分

该模块对本系统进行一些设定。如机房配置:包括机房代码、机房名称、机房计算机数量的设定,定时监测时间的设定,生成报告的设定等。这些设定使系统能适应不同需要,更灵活地在不同场合运作。

2.3 历史记录查询管理部分

该模块的主要功能是记录每间机房中所有计算机的开机、关机时间,并提供查询功能,使管理人员知道某台计算机开关时间及在某一时刻某台计算机开关状态。

3 主界面设计

用户界面应具备如下的特性:

(1)使用简单:界面简洁明了、操作方便。

(2)具有容错能力:具有错误诊断、修正错误以及出错保护的功能;

(3)系统能够按照用户的希望和需要,提供不同详细程度的系统响应信息,包括反馈信息、提示信息、帮助信息、出错信息等;

(4)在完成特定功能的前提下,使用户界面越简单越好。用户界面应能保证用户正确、可靠地使用系统,保证有关程序和数据的安全性。

为方便管理人员监控,在用户界面设计中采用图形化人机界面,力求简单灵活。在系统主屏幕中,以1个图标表示机房的1台电脑,并用不同颜色的图标来表示电脑开关的不同状态。

4 初始化设计

在进行功能设计之前,首先要对系统进行初始化设计,主要初始化流程如图2所示。

4.1 通信控件MSComm的设置

本系统对控件的具体设置如下:

MSComm1.CommPort=1      //使用COM1作为通信端口

MSComm1.PortOpen=True     //打开通信端口

MSComm1.InputMode=comInputModeBinary

//以二进制方式读取数据

MSComm1.InputLen=0//每次读取接收

//缓冲区的全部内容

MSComm1.Rthreshold=0    //使用查询方式,关中断

MSComm1.Settings=″9600,n,8,1″ //通信参数设置,波

//特率9600,不作奇偶校验,8位数据位,1位停止位

由于每次发送和接收的数据长度都不相同,所以很难确定Rthreshold的属性值,以产生中断;另外,由于系统采用面向对象编程,每次是以某个事件触发发送和接收数据的,因此系统采用查询InBufferCount的值来决定是否接收数据,而不采用中断的方式。

此外,对于微机与单片机组成的数据采集处理系统,由于数据的传输多采用十六进制方式,所以将MSComm设置为以二进制方式读取数据。

4.2 根据机房配置数据表对系统进行初始化

因为本系统是采用动态方式显示数据的,机房的配置(机房代码、机房名、计算机数量)是存储在数据库(“机房监控.mdb”)中的机房配置数据表中,所以在装载系统时要取出数据表中的数据来初始化系统。

本系统定义了一个二维全局数组Public pcroom(1 To 100,1 To 2)As Variant来存储机房配置数据表中的机房数据。第一维表示机房代码,设定为最多可以有100间机房,并可以根据需要更改数组的下标来增加或减少机房的数量。Pcroom(I,1)表示机房名,Pcroom(I,2)表示该机房的计算机数量,i表示机房代码(1≤i≤100)。

4.3 界面中与机房有关的控件的初始化

在本系统中,与机房名有关的控件有4个,其中2个是ComboBox(Combo1,用来显示当前机房列表),一个在主界面(Form1),一个在历史记录查询窗口(frmhistory);另外2个是ListBox,它们在定时监测机房设定窗口(fixchkset),名称为lstall和lstsel。

5 功能设计

5.1 监测模块

监测模块的主要功能是发监测信号给单片机,要求读取特定计算机的电源开关状态。监测部分根据操作方式可分为定时操作与非定时操作(人工操作);根据所监测的计算机数量分类,可以分为监测全部和部分监测(要监测的计算机数量大于等于1,小于机房的计算机总数)。

定时监测功能是为了使机房管理人员能够及时了解特定计算机的开关状态而设置的。它允许使用者通过设定时间间隔及选取要操作的计算机,实现每隔一段时间驱动一次监测事件,从而返回特定计算机在当前时刻的开关状态。此项功能不但免去了人工操作的麻烦,而且提高了系统的实时性。使用者不必长时间在电脑面前观察每台计算机的状态。只要设置了定时监测功能,系统就会每隔一段时间自动进行监测,管理人员只要查看历史记录就可以知道这些计算机的使用情况。定时监测实际上利用一个定时器控件,当到达定时器的时间间隔时,就触发一次监测事件。

5.2 控制模块

控制部分要实现的功能是发开/关信号给下位机,要求将特定计算机的状态设为开/关。若接收到下位机的正确反馈信号,则在界面上将相应计算机的图标置为开/关;若接收出错,则给出出错提示。根据要控制的计算机数量,可以分为部分

[1] [2]

关键字:串行通信  单片机  Visual  Basic

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2011/0329/article_6310.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:智能电池系统的应用
下一篇:自制镍氢电池充电器电路图

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
串行通信
单片机
Visual
Basic

小广播

独家专题更多

2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved