1、基于 VB 的数据采集软件设计摘 要在存储测试系统中,测试应用软件是必不可少的组成部分,它负责计算机与测试仪器进行通信,不仅要设置测试仪器的参数,还需要将仪器采集的数据传输到计算机中完成回放和处理。本文使用虚拟仪器开发平台 Visual Basic 来编写测试系统的读数采样和处理软件,根据软件工程的科学方法提出了软件的详细设计方案,并具体的编写了程序。本软件界面友好,功能强大,易于扩展和维护,有较高的使用价值。本文对软件自适应分辨率的设计、数据采集的实时显示、数据的保存及读取作了进一步的探究。从软件工程的角度讲解了软件的关键技术、各模块的实现、生成安装程序和测试结果。设计了具体的测试用例,并对
2、相关模块进行了测试,结合图表和数据说明了对软件进行测试的过程,在很大的程度上证明了软件的可靠性和可用性。实践表明,本系统各功能模块运行情况良好,能够有效地应用于测试系统中。关键词:Visual Basic,虚拟仪器,测试系统,数据处理第 1 页 共 33 页Software Design About Acquisition Data Based On VBAbstractIn the storage measurement system, measurement application software is an essential component,it is responsible f
3、or communications between computer and measurement instruments, it must not only set the parameters of measurement instruments, but also need to transfer the tested data to the computer to playback, process and record. This article uses Visual Basic virtual instrument development platform to write d
4、ata acquisition and processing software that applied in the measurement system. It proposes the detailed design of software programs according to the scientific method of software engineering, and writes the programming particular. The software interface is friendly, powerful, easy expansion and mai
5、ntenance, there is a higher value. This article probes into the design of adaptive resolution system, real-time display of data acquisition, the conservation and reading. From the perspective of software engineering, it explains key technology of software implementations, modules implementations, pr
6、oduction of erection sequence and test result. Related modules were tested using a specific test case and illustrated with charts and data. The result proves the reliability and availability of the software at a large extent.Practice shows that the functional modules of the system runs in good condi
7、tion, and can be effectively applied to the test system.Key words: Visual Basic, Virtual Instrument, Test System, Data Processing1 绪论1.1 课题的提出背景和研究意义随着现代科技的飞速发展,数据采集测试技术已经成为一门独立学课,其地位在人类社会科学的发展中日益提升 1。而集中反映数据采集测试技术水平成果第 2 页 共 33 页的数据采集系统则是计算机、智能仪器与外界物理世界联系的桥梁,是获取信息的重要途径。数据采集技术是信息科学的重要分支,它不仅应用在智能仪器中,
8、并且在现代工业生产、国防军事及科学研究等方面都得到广泛应用,无论是过程控制、状态监测,还是故障诊断、质量检测,都离不开数据采集系统 2。数据采集系统由以下几部分组成:数据采集、数据传输、数据存储、数据处理、分析和显示等。数据采集在现代社会生活中几乎无孔不入,它已渗透到了地质、医药器械、雷达、通讯、遥感遥测等多个领域,为我们打开了一条获取更多更精准信息的通道 3。存储测试系统是一种数据采集系统(DOS),包括数据采集记录硬件和计算机数据分析处理软件;一般情况下,将信息量化采集后先存入系统中的数据存储器,等任务执行完后再进行事后的数据读取和分析;数据采集记录硬件部分在工作完成后进行回收,以便进行数
9、据回读 4。根据存储测试系统的要求,在采集系统现场实时完成信息的快速采集与记录后,需要在计算机中完成事后存储器中数据的回放,以再现测试信息。将采集系统记录的数据存放在其内部存储器之后,我们需要编制相应的测试软件通过计算机和采集系统的接口传输测试数据量,并在计算机中进行处理和分析,完成存储测试中再现测试信息的功能 5。由此可见,测试软件是存储测试系统中不可缺少的一部分。长期以来,实验室的工作人员在从事科研工作的同时,还得兼顾编写和反复修改传统程序代码的任务,额外的工作量不仅加重了科研人员的负担,同时也占用了新技术研发的时间。本课题的核心内容正是以 VB 为平台开发通用的测试软件,它兼容不同的数据
10、文件、不同的读数接口,使数值分析和数字处理更加方便,从而将科研人员从繁重的程序代码中解救出来,使他们可以潜心从事科学技术研究工作 6。1.2 相关技术及发展现状软件是虚拟仪器技术中最重要的部份。使用正确的软件工具并通过设计或调用特定的程序模块,可以高效地创建自己的应用以及友好的人机交互界面。好的软件不仅能轻松方便地完成与各种软硬件的连接,更能提供强大的后续数据处理能力,设置数据处理、转换、存储的方式,并将结果显示给用户 7。目前,虚拟第 3 页 共 33 页仪器软件开发工具有如下两类:文本式编程语言,如 Visual C+、Visual BASIC和 LabWindows/CVI,图形化编程语
11、言,如 LabVIEW、HPVEE 等 8。Visual Basic,简称 VB,是 Microsoft 公司推出的一种 Windows 应用程序开发工具,是当今世界上使用最广泛的编程语言之一,它也被公认为是编程效率最高的一种编程方法。无论是开发功能强大、性能可靠的商务软件,还是编写能处理实际问题的实用小程序,VB 都是最快速、最简便的方法。VB 采用可视化的开发图形用户界面(GUI)的方法,一般不需要编写大量代码去描述界面元素的外观和位置,而只要把需要的控件拖放到屏幕上的相应位置即可;VB 是微软公司的一种通用程序设计语言,包含在 Microsoft Excel、Microsoft Acce
12、ss 等众多Windows 应用软件种的 VBA 都使用 VB 语言,以供用户二次开发;目前制作网页使用较多的 VBScript 脚本语言也是 VB 的子集 9。Visual C+ 在开发面向对象应用程序时,主要使用了两种方法,一种是使用Windows 提供的 Windows API 函数,另一种是直接使用 Microsoft 提供的 MFC 类库。API 是应用程序编程接口(Application Programming Interface)的缩写,Windows API 是 Windows 系统和 Windows 应用程序间的标准程序接口,API 为应用程序提供系统的各种特殊函数及数据结构
13、定义,Windows 应用程序可以利用上千个标准 API 函数调用系统功能,这些函数用起来很方便。根据 Windows API 函数完成的功能,可将其分以下三类。窗口管理函数:实现窗口的创建、移动和修改功能。图形设备接口函数:实现与设备无关的图形操作功能。系统服务函数:实现与操作系统有关的多种功能 10。MFC 类库集成了大量已经预先定义好的类,用户可以根据编程的需要调用相应的类,或根据需要自定义有关的类。LabVIEW (Laboratory Virtual instrument Engineering) 是美国国家仪器公司(National Instruments, NI)开发的一种图形化
14、的编程语言。图形化的程序语言,又称为“G”语言 11。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,使编程简单直观 12。事实上,测试应用软件可以视为虚拟仪器。虚拟仪器是在智能仪器后发展起来的新一代仪器。虚拟仪器(VI-Virtual Instrumentation)就是利用高性能的模第 4 页 共 33 页块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。虚拟仪器(Virtual instrument,简称 VI)并不是虚拟的仪器,而是一种实在的仪器,它利用计算机软件、硬件和总线技术与测试技术、仪器技
15、术密切结合而孕育出的一种构成仪器系统的一种新概念 13。是基于微型计算机软硬件平台的可视化智能仪器。用户可以通过友好明晰的图形化的人机界面来操作、模拟某种测量仪器的计算机。完成对被监测单元数据的采集、分析、判断、处理、存储和显示功能。其核心的思想是利用计算机的强大资源使本来需要硬件实现的技术软件化,以便最大限度地降低系统成本,增强系统功能与灵活性。在 1986 年美国国家仪器公司(National Instruments,简称 NI 公司)首先提出。software is instrument(软件就是仪器)” 的概念。开辟了仪器时代的新纪元虚拟仪器时代 14。虚拟仪器的发展大致经历了三个发展
16、阶段:第一阶段,早期的虚拟仪器,通用接口总线(GPIR)标准的建立。通过 GPIB 和 RS-232 总线将计算机连接起来以实现与检测仪器的通信。从测量仪器获得数据,并通过各种数据分析函数库等软件工具来完成对于数据的分析处理和显示。第二阶段,开放式仪器。随着微处理器和DSP(Digital signal processing)技术水平和性能价格比的不断提高。逐渐以标准的插入式数据处理卡(Pligin PCDAQ),后来发展到即插即用的数据卡。来取代原来的传统测量仪器以完成效据采集的任务。第三阶段,虚拟仪器在软件和硬件方面不断取得突破性进展 15。20 世纪九十年代虚拟仪器框架得到了广泛认同和采
17、同。以面向对象技术为基础的虚拟仪器开发软件已经成为标准的虚拟仪器开发平台。图形化编程成为主流。1997 年,美国国家仪器(NI)推出了具有系统时钟、同步触发总线功能的 PXI 总线。其具有 PCI 总线和 VXI 总线两者的优势。发展到这一阶段。人们认识到了虚拟仪器软件框架才是数据采集和仪器控制系统实现自动化的关键 16。在虚拟仪器概念提出后的 20 年间,虚拟仪器的内涵也不断的扩充。而“软件就是仪器”的口号 17。现在来看,由于强调软件,因此给了许多人错觉,认为虚拟仪器就是软件而没有硬件。实际上,一套虚拟仪器系统是一台工业标准计算机或工作站配上功能强大的应用软件、外设硬件(例如插入式板卡)及
18、驱动软件,他们在一起共同完成传统仪器的功能 18。这里软件可以代替传统的示波器、频谱第 5 页 共 33 页分析仪等硬件显示、分析设备。图 1.1 虚拟仪器测试系统构成方案在虚拟仪器未出现之前,数据采集、过程监测和自动测试等在验室研究和工业自动化领域广泛存在的实际任务都是由厂家事先定义,并且由功能固定不变的传统仪器来完成。但是,传统测量仪器的功能缺乏灵活性,使用者必须不断购买新的仪器,以满足不断变化的测量任务的要求 19。虚拟仪器的出现和应用改变了这种现状,开创了仪器使用者成为仪器设计者的新时代。虚拟仪器是利用计算机的显示器来模拟传统仪器的控制面板,以多种形式表达输出测量结果,利用 I0接口设
19、备完成信号的采集、测量与调理,从而利用计算机强大的软件功能来实现信号数据的运算、分析和处理,以完成测量功能。因为虚拟仪器可与计算机同步发展,与网络及其它周边设备互联,用户只需改变软件程序或软件模块的组合,就可以不断扩展和增强测试和分析功能,真正体现“软件就是仪器” 。综上所述,由于 VB 编程简单、快捷、易学易用,本课题选用 VB 为开发平台来设计测试软件。1.3 论文的主要工作论文的主要工作和内容如下:第 6 页 共 33 页1、软件自适应分辨率的设计;2、数据采集的实时显示;3、数据的保存及读取;4、归纳总结,提出可行的方案。1.4 论文的组织结构论文包括四章内容:第 1 章为绪论,主要介
20、绍了论文研究的背景和意义以及论文主要工作;第 2 章介绍了软件的相关理论;第 3 章介绍了软件的实现、关键技术、各模块的实现、生成安装程序和测试结果;第 4 章是论文工作的总结;最后是参考文献和致谢。2 软件的相关理论2.1 软件的发展及功能特点Visual Basic(简称 VB)最初是由 Basic 语言发展而来的,但从 Basic 到Visual Basic 的变化是质的飞跃。Basic 语言是基于过程的程序设计语言,而第 7 页 共 33 页Visual Basic 是基于对象的事件驱动机制的程序设计语言。Basic 语言的编程界面是字符界面,设计的程序是基于 DOS 平台的字符界面程
21、序;Visual Basic 的程序开发界面是可视化的图形界面,开发的应用程序也是 Windows 图形界面程序。Visual Basic 有多个版本,从 1.0、2.0、3.0、4.0、5.0 到 6.0 版本,功能在不断增强。Visual Basic 6.0 版本之后就是 Visual Basic.Net,从 Visual Basic 6.0 到 Visual Basic.Net 又是一次大的变化,在概念上、框架上和编程方式上都有了变化,但这种变化没有从 Basic 到 Visual Basic 的变化那么大。Visual Basic 6.0 有三个不同的版本,即学习版、专业版和企业版,三
22、个版本包含的内容多少不一样。总的来说,Visual Basic 的发展历史如下:60 年代,Dartmouth 学院的两位教授 John G . Kemeny 和 Thomas Kuntz 发明 Basic 语言;1976 年, Bill Gates 和 Paul Allen 开发出了语言的早期版本;80 年代初,微软公司推出了适合 113MPC 的 GW 一 Basic 语言;80 年代中期,微软公司推出了快速、易学易用的 QuickBasic 版本;1991 年,微软公司开发出了面向图形用户界面、具有事件驱动编程机制的VisualBasiel.0;1992 年,微软公司推出 VisualB
23、asic2.0 版;1993 年,微软公司推出了 VISualBasic3.0 版,增加了数据库开发技术和对象链接与嵌入技术(OLE)等功能;1995 年,微软公司推出了 Visual Basic4.0 版,改善了程序设计环境,与windows 95 紧密结合;1996 年,微软公司推出了 VisualBasicS.0 版,增加或增强了 Internet 开发、数据库访问、程序调试、ActiveX 控件等方面功能;支持 Internet 开发和原始码编辑,是 VISualBasics.0 的两大功能;1998 年,微软公司推出了 VISualBasic6.O 版,增强了数据库开发的功能及Act
24、iveX 控件等方面功能。Visual Basic 的功能特点为:具有基于对象的可视化设计工具。在 Visual Basic 中,程序设计是基于对第 8 页 共 33 页象的。对象是一个抽象的概念,是把程序代码和数据封装起来的一个软件部件,是经过调试可以直接使用的程序单位。许多对象都是可视的。程序员编写程序代码时,一般只在一些对象的事件过程中填写所需要的代码。事件驱动的编程机制。事件驱动是非常适合图形用户界面的编程方式。传统的编程是一种面向过程的方式,按程序事先设计的流程运行。在图形用户界面的应用程序中,用户的动作掌握着程序的运行流向,如单击“左移”按钮可控制标签向左移动,单击“右移”按钮,则
25、可控制标签向右移动等。每个事件都能驱动一段程序的运行,程序员只要编写响应用户动作的代码,各个动作之间不一定有联系。这样的应用程序代码简单,既易于编写,又易于维护。提供了易学易用的应用程序集成开发环境。在 Visual Basic 集成开发环境中,用户可做下面所有的事情:设计界面、编写代码、调试程序、编译源程序为可执行程序,以及制作应用程序用户安装盘,以便安装到其他没有安装 Visual Basic 的 Windows 机器上运行程序。结构化的程序设计语言。Visual Basic 的对象、事件过程、内部函数、自定义过程、模块等,都是一些独立的程序部件。设计程序就如果制造机器,只要设计程序部件,
26、使用现成的程序部件,并组装这些程序部件。由于各个部件之间的相互独立、功能完整,所以易于分开维护,整个程序分块明确、结构清晰、易于掌握 20。Visual Basic 除了具有以上功能以外,还具有许多其他的特点,例如支持强大的数据库应用,使用 ActiveX 技术,网络功能开发,多种应用程序设计向导和完备的联机帮助功能。2.2 软件的开发环境Visual Basic 将一个应用程序称为一个工程。在启运 Visual Basic 的过程中,会看到一个对话框,如图 2.1 所示:第 9 页 共 33 页图 2.1 Visual Basic 的启动对话框该对话框有三个选项卡:“新建” 、 “现存”和“
27、最新” 。 “新建”代表完全从头开始建立一个新的工程;“现存”表示打开一个现有的工程;“最新”表示打开一个最近所编写并存盘的工程,在“新建”选项卡下,有多种程序类型选择,一般选择“标准 EXE”类型。在其他两个选项卡下则会出现“打开”程序的对话框,要求选择要打开的程序文件名,最后都是单击“打开”按钮进入 Visual Basic 的集成开发环境(IDE)界面,如图 2.2 所示。2.2.1 常规组成部分Visual Basic6.0 的程序也跟其他 Windows 应用程序一样,具有标题栏、菜单栏、工具栏等常规组成部分。标题栏的内容就是应用程序工程的名称加上“Microsoft Visual Basic(设计) ”字样内容。菜单栏提供了编辑,设计和调试 Visual Basic 应用程序所以需要的菜单命令。工具栏是一些菜单命令的快捷按钮。这些常规部分就如同 Microsoft Word 等程一样,是 Windows 程序都有的必要组成部分。