APP下载

VB在环境监测系统中的应用

2013-06-01朱凌云

自动化仪表 2013年3期
关键词:绘制编程界面

罗 婷 朱凌云

(东华大学信息科学与技术学院,上海 201620)

0 引言

Visual Basic(VB)编程语言具有众多的优点,易于学习,因此常常被应用于监控系统的上位机软件设计。在上位机软件系统的实现过程中,主要需要解决的问题包括记录的管理、实时曲线的显示、历史数据的保存和查看等。本文通过对VB语言的深入研究和学习,设计了一个环境监控系统的上位机软件。针对设计过程中的3种关键技术,以下分别给出详细的实现方法。这3种技术分别为基于ADO的Access访问方法、绘制曲线的方法以及与Excel的连接方法。最后,给出了这些关键技术在环境监测系统中的实际应用情况。

1 VB关键技术

1.1 基于ADO的Access数据库访问

ActiveX Data Object(ADO)技术是由 Microsoft公司开发的最新的数据访问接口技术,ADO是建立在基于低层数据访问接口OLEDB技术上的数据对象,它是数据访问对象(data access object,DAO)和远程数据对象(remote data object,RDO)的后继产物[1]。在 VB中,通常有2种方法可以实现对ADO的操作[2],一是通过ADO Data控件非编程访问方式,二是利用ADO对象编程来访问各种类型数据库。

在此举例说明第二种方法,即编程访问Access数据库。假设存在一个名为“hjmonitoring”的数据库,同时该数据库中有一张“admin”表,该表含有 users、passwords和rname这3个字段。访问数据库的关键语句如下。

使用VB设计上位机软件时,常常需要使用数据库保存一些数据记录(当数据量不大时,常采用Access数据库),同时也要求在监控界面上方便地查看这些记录。因此,必需利用编程方法访问数据库。

1.2 利用VB绘制曲线

在监控软件中,图形最能给人直观的感受,因此,采用VB语言编程,实现实时图形绘制十分必要。绘制实时图形的方法较多,在此结合设计系统时所涉及到的二维曲线的实时绘制,采用一种较简单的Line方法绘制实时曲线[5]。

Line方法是结合实测得到的数组数据进行曲线的绘制。该方法必须在窗体或者图片框等容器内使用。实际使用时,常采用PictureBox控件作为容器,但首先要设置其Autodraw属性为true,以保证在界面刷新时所绘图形不会被消隐。

使用Line方法得到的是位图图像,图像的大小和所定义的容器的大小一致。

假设Timer控件的Interval参数值设为1000,即每隔1 s刷新一次;监测环境中CO2气体的浓度随时间变化,使用GetCO2Percent()函数来采集CO2实时浓度值,则绘制实时曲线的程序[6]如下。

如果要查看历史曲线,首先提取历史数据并存放到数组CO2_CSh(N1)中(注:取数据方法将在下一部分VB与Excel连接中做详细说明),然后再绘制曲线。绘制曲线的程序如下。

1.3 VB 与 Excel的连接

在监控软件中,还有一个应用很广泛的连接对象——Excel。

在VB中,可以通过调用Excel事件的方法完成报表的制作[7-8]。利用 Excel实现数据报表制作的关键在于如何根据报表要求的格式将数据快速准确地输出到Excel。

微软的Excel对象模型包括128个不同的对象,其中最重要也是使用最多的4个对象分别介绍如下。①Application对象,它处于Excel对象层次结构的顶层,表示Excel自身的运行环境;②Workbook对象,它直接处于Application对象的下层,表示一个Excel工作簿文件;③Worksheet对象,它包含于Workbook对象,表示一个Excel工作表;④Range对象,它包含于Worksheet对象,表示Excel工作表中的一个或多个单元格。

在VB中,可以通过对这些对象进行直接控制,实现数据的输入输出。Excel中还定义了一个类“cell”,这个类所代表的就是Excel的一个单元格。通过给cell赋值,就可以实现对Excel表格的某个单元格写入数据。

下面给出使用Excel对象时的常用编程语句。

2 VB在环境监测系统中的应用

2.1 系统组成

系统主要应用在对人类生命安全存在威胁的环境中,如密闭环境、地下等。该系统的工作流程为:测得环境内各种气体的浓度数值,然后系统按照适宜人类生存的各种气体浓度的标准值对环境进行净化处理;待人们进入环境净化工作后,系统继续实时监测该环境,在PC机上显示出各种气体浓度的实时曲线。如果某气体值超标,监控系统会马上报警,提示环境内的工作人员撤退。

本系统的下位机主要由温度传感器、噪声传感器以及多种气体浓度测量传感器组成[9],这些传感器信号经过数据采集卡的自动采集,通过USB口传送至上位机进行分析和处理。本系统的组成框图如图1所示。

图1 系统组成框图Fig.1 Composition of the system

系统的上位机监控软件组成框图如图2所示。

图2 监控软件组成框图Fig.2 Configuration of the monitoring software

对于该监控软件,系统用户管理和气体标准管理页面涉及到VB和数据库连接的技术;实时监控曲线涉及到利用VB绘制曲线的技术;气密性监测、环境净化管理以及查看历史记录既涉及到VB和数据库连接的技术,又涉及到VB和Excel连接的技术。

系统用户管理界面与气体标准管理页面类似,通过在监控界面的相关操作,使得数据库中的“admin”表得到修改,包括查看记录、添加记录、修改记录和删除记录4种操作。

2.2 实时监控曲线界面

环境监控涉及到的参数较多,具体包括温度、噪声、压力、湿度、CO2、CO、O2、NO、H2S、CH4这 10 种检测信号,所以监控界面上同时放置有10个PictureBox控件用来显示曲线。监测开始后,显示界面就会实时显示各个气体浓度的动态变化过程。同时,界面上有两条浓度上下限标准值直线,若浓度超出范围,系统会发出报警声。此外,点击任意PictureBox,可实现对应位置参数曲线图的放大。N2浓度实时监测曲线如图3所示。

图3 N2浓度实时监测图Fig.3 Real-time monitoring of N2concentration

2.3 输出报表

在实时监测过程中,大量的气体浓度数据会被保存到Excel表格中,以便测试后查看记录时调用。同时,在监测过程中系统也会对这些数据做分析处理,每隔30 min自动输出一张格式工整的测试分时报表。具体测试分时报表界面如图4所示。

图4 测试分时报表界面图Fig.4 Interface of time sharing report of testing

3 结束语

通过分析可知,使用VB语言编制监控程序简单易行,设计界面美观,具有较大的实际应用意义。目前,该监控程序已经应用于地下环境监控系统中。

[1]张磊.VB中用ADO对象动态访问Access[J].长春师范学院学报,2004,23(2):36 -39.

[2]莫礼平,张兆海.VB中基于ADO的数据库访问方法[J].电脑开发与应用,2004,17(6):33 -34.

[3]周威.在VB.Net中用ADO访问Access数据库的方法[J].嘉兴学院学报,2005,17(3):39 -41.

[4]张良,何也熙.Matlab、Access和VB.NET混合编程方法的研究和应用[J].计算机工程与设计,2009,30(5):1232 -1235.

[5]乔文刚,汪友龙,李宣,等.关于用VB实现实时测试曲线的动态显示研究[J].机床与液压,2009,39(1):126 -127.

[6]关维娟,陈清华.利用VB编程实现实时数据曲线绘制[J].信息技术,2005(10):76 -78.

[7]王福杰,潘宏侠.基于VB的二维实时曲线显示设计[J].电脑开发与应用,2005,18(11):30 -32.

[8]魏彩乔,王晓光,焦满囤.基于VB和EXCEL的复杂数据报表输出[J].华北航天工业学院学报,2005,15(1):3 -7.

[9]安子良,孔令超,肖立中.基于VB、Matlab和Access的石油井架应力测量系统[J].化工自动化及仪表,2011,38(6):597 -600.

猜你喜欢

绘制编程界面
微重力下两相控温型储液器内气液界面仿真分析
编程,是一种态度
元征X-431实测:奔驰发动机编程
基于Excel VBA和AutoCAD的滚动轴承参数化比例图绘制方法
编程小能手
国企党委前置研究的“四个界面”
一种可用于潮湿界面碳纤维加固配套用底胶的研究
纺织机上诞生的编程
超萌小鹿课程表
基于FANUC PICTURE的虚拟轴坐标显示界面开发方法研究