




免费预览已结束,剩余30页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于VB的数据采集软件设计摘 要在存储测试系统中,测试应用软件是必不可少的组成部分,它负责计算机与测试仪器进行通信,不仅要设置测试仪器的参数,还需要将仪器采集的数据传输到计算机中完成回放和处理。本文使用虚拟仪器开发平台Visual Basic来编写测试系统的读数采样和处理软件,根据软件工程的科学方法提出了软件的详细设计方案,并具体的编写了程序。本软件界面友好,功能强大,易于扩展和维护,有较高的使用价值。本文对软件自适应分辨率的设计、数据采集的实时显示、数据的保存及读取作了进一步的探究。从软件工程的角度讲解了软件的关键技术、各模块的实现、生成安装程序和测试结果。设计了具体的测试用例,并对相关模块进行了测试,结合图表和数据说明了对软件进行测试的过程,在很大的程度上证明了软件的可靠性和可用性。实践表明,本系统各功能模块运行情况良好,能够有效地应用于测试系统中。关键词:Visual Basic,虚拟仪器,测试系统,数据处理 Software Design About Acquisition Data Based On VBAbstractIn the storage measurement system, measurement application software is an essential component,it is responsible for 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 data 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 maintenance, 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, production 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 condition, and can be effectively applied to the test system.Key words: Visual Basic, Virtual Instrument, Test System, Data Processing1 绪论1.1 课题的提出背景和研究意义随着现代科技的飞速发展,数据采集测试技术已经成为一门独立学课,其地位在人类社会科学的发展中日益提升1。而集中反映数据采集测试技术水平成果的数据采集系统则是计算机、智能仪器与外界物理世界联系的桥梁,是获取信息的重要途径。数据采集技术是信息科学的重要分支,它不仅应用在智能仪器中,并且在现代工业生产、国防军事及科学研究等方面都得到广泛应用,无论是过程控制、状态监测,还是故障诊断、质量检测,都离不开数据采集系统2。数据采集系统由以下几部分组成:数据采集、数据传输、数据存储、数据处理、分析和显示等。数据采集在现代社会生活中几乎无孔不入,它已渗透到了地质、医药器械、雷达、通讯、遥感遥测等多个领域,为我们打开了一条获取更多更精准信息的通道3。存储测试系统是一种数据采集系统(DOS),包括数据采集记录硬件和计算机数据分析处理软件;一般情况下,将信息量化采集后先存入系统中的数据存储器,等任务执行完后再进行事后的数据读取和分析;数据采集记录硬件部分在工作完成后进行回收,以便进行数据回读4。根据存储测试系统的要求,在采集系统现场实时完成信息的快速采集与记录后,需要在计算机中完成事后存储器中数据的回放,以再现测试信息。将采集系统记录的数据存放在其内部存储器之后,我们需要编制相应的测试软件通过计算机和采集系统的接口传输测试数据量,并在计算机中进行处理和分析,完成存储测试中再现测试信息的功能5。由此可见,测试软件是存储测试系统中不可缺少的一部分。长期以来,实验室的工作人员在从事科研工作的同时,还得兼顾编写和反复修改传统程序代码的任务,额外的工作量不仅加重了科研人员的负担,同时也占用了新技术研发的时间。本课题的核心内容正是以VB为平台开发通用的测试软件,它兼容不同的数据文件、不同的读数接口,使数值分析和数字处理更加方便,从而将科研人员从繁重的程序代码中解救出来,使他们可以潜心从事科学技术研究工作6。1.2 相关技术及发展现状软件是虚拟仪器技术中最重要的部份。使用正确的软件工具并通过设计或调用特定的程序模块,可以高效地创建自己的应用以及友好的人机交互界面。好的软件不仅能轻松方便地完成与各种软硬件的连接,更能提供强大的后续数据处理能力,设置数据处理、转换、存储的方式,并将结果显示给用户7。目前,虚拟仪器软件开发工具有如下两类:文本式编程语言,如Visual C+、Visual BASIC和LabWindows/CVI,图形化编程语言,如LabVIEW、HPVEE等8。Visual Basic,简称VB,是Microsoft公司推出的一种Windows应用程序开发工具,是当今世界上使用最广泛的编程语言之一,它也被公认为是编程效率最高的一种编程方法。无论是开发功能强大、性能可靠的商务软件,还是编写能处理实际问题的实用小程序,VB都是最快速、最简便的方法。VB采用可视化的开发图形用户界面(GUI)的方法,一般不需要编写大量代码去描述界面元素的外观和位置,而只要把需要的控件拖放到屏幕上的相应位置即可;VB是微软公司的一种通用程序设计语言,包含在Microsoft Excel、Microsoft Access等众多Windows应用软件种的VBA都使用VB语言,以供用户二次开发;目前制作网页使用较多的VBScript脚本语言也是VB的子集9。Visual C+ 在开发面向对象应用程序时,主要使用了两种方法,一种是使用Windows提供的Windows API函数,另一种是直接使用Microsoft 提供的MFC类库。API是应用程序编程接口(Application Programming Interface)的缩写,Windows API是Windows系统和Windows应用程序间的标准程序接口,API为应用程序提供系统的各种特殊函数及数据结构定义,Windows应用程序可以利用上千个标准API函数调用系统功能,这些函数用起来很方便。根据Windows API函数完成的功能,可将其分以下三类。窗口管理函数:实现窗口的创建、移动和修改功能。图形设备接口函数:实现与设备无关的图形操作功能。系统服务函数:实现与操作系统有关的多种功能10。MFC类库集成了大量已经预先定义好的类,用户可以根据编程的需要调用相应的类,或根据需要自定义有关的类。LabVIEW (Laboratory Virtual instrument Engineering) 是美国国家仪器公司(National Instruments, NI)开发的一种图形化的编程语言。图形化的程序语言,又称为“G”语言11。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,使编程简单直观12。事实上,测试应用软件可以视为虚拟仪器。虚拟仪器是在智能仪器后发展起来的新一代仪器。虚拟仪器(VI-Virtual Instrumentation)就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。虚拟仪器(Virtual instrument,简称VI)并不是虚拟的仪器,而是一种实在的仪器,它利用计算机软件、硬件和总线技术与测试技术、仪器技术密切结合而孕育出的一种构成仪器系统的一种新概念13。是基于微型计算机软硬件平台的可视化智能仪器。用户可以通过友好明晰的图形化的人机界面来操作、模拟某种测量仪器的计算机。完成对被监测单元数据的采集、分析、判断、处理、存储和显示功能。其核心的思想是利用计算机的强大资源使本来需要硬件实现的技术软件化,以便最大限度地降低系统成本,增强系统功能与灵活性。在1986年美国国家仪器公司(National Instruments,简称NI公司)首先提出。software is instrument(软件就是仪器)”的概念。开辟了仪器时代的新纪元虚拟仪器时代14。虚拟仪器的发展大致经历了三个发展阶段:第一阶段,早期的虚拟仪器,通用接口总线(GPIR)标准的建立。通过GPIB和RS-232总线将计算机连接起来以实现与检测仪器的通信。从测量仪器获得数据,并通过各种数据分析函数库等软件工具来完成对于数据的分析处理和显示。第二阶段,开放式仪器。随着微处理器和DSP(Digital signal processing)技术水平和性能价格比的不断提高。逐渐以标准的插入式数据处理卡(Pligin PCDAQ),后来发展到即插即用的数据卡。来取代原来的传统测量仪器以完成效据采集的任务。第三阶段,虚拟仪器在软件和硬件方面不断取得突破性进展15。20世纪九十年代虚拟仪器框架得到了广泛认同和采同。以面向对象技术为基础的虚拟仪器开发软件已经成为标准的虚拟仪器开发平台。图形化编程成为主流。1997年,美国国家仪器(NI)推出了具有系统时钟、同步触发总线功能的PXI总线。其具有PCI总线和VXI总线两者的优势。发展到这一阶段。人们认识到了虚拟仪器软件框架才是数据采集和仪器控制系统实现自动化的关键16。在虚拟仪器概念提出后的20年间,虚拟仪器的内涵也不断的扩充。而“软件就是仪器”的口号17。现在来看,由于强调软件,因此给了许多人错觉,认为虚拟仪器就是软件而没有硬件。实际上,一套虚拟仪器系统是一台工业标准计算机或工作站配上功能强大的应用软件、外设硬件(例如插入式板卡)及驱动软件,他们在一起共同完成传统仪器的功能18。这里软件可以代替传统的示波器、频谱分析仪等硬件显示、分析设备。图1.1虚拟仪器测试系统构成方案在虚拟仪器未出现之前,数据采集、过程监测和自动测试等在验室研究和工业自动化领域广泛存在的实际任务都是由厂家事先定义,并且由功能固定不变的传统仪器来完成。但是,传统测量仪器的功能缺乏灵活性,使用者必须不断购买新的仪器,以满足不断变化的测量任务的要求19。虚拟仪器的出现和应用改变了这种现状,开创了仪器使用者成为仪器设计者的新时代。虚拟仪器是利用计算机的显示器来模拟传统仪器的控制面板,以多种形式表达输出测量结果,利用I0接口设备完成信号的采集、测量与调理,从而利用计算机强大的软件功能来实现信号数据的运算、分析和处理,以完成测量功能。因为虚拟仪器可与计算机同步发展,与网络及其它周边设备互联,用户只需改变软件程序或软件模块的组合,就可以不断扩展和增强测试和分析功能,真正体现“软件就是仪器”。综上所述,由于VB编程简单、快捷、易学易用,本课题选用VB为开发平台来设计测试软件。1.3 论文的主要工作论文的主要工作和内容如下:1、软件自适应分辨率的设计;2、数据采集的实时显示;3、数据的保存及读取;4、归纳总结,提出可行的方案。1.4 论文的组织结构论文包括四章内容:第1章为绪论,主要介绍了论文研究的背景和意义以及论文主要工作;第2章介绍了软件的相关理论;第3章介绍了软件的实现、关键技术、各模块的实现、生成安装程序和测试结果;第4章是论文工作的总结;最后是参考文献和致谢。2 软件的相关理论2.1 软件的发展及功能特点Visual Basic(简称VB)最初是由Basic语言发展而来的,但从Basic到Visual Basic的变化是质的飞跃。Basic语言是基于过程的程序设计语言,而Visual Basic是基于对象的事件驱动机制的程序设计语言。Basic语言的编程界面是字符界面,设计的程序是基于DOS平台的字符界面程序;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有三个不同的版本,即学习版、专业版和企业版,三个版本包含的内容多少不一样。总的来说,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年,微软公司推出 VisualBasic2.0版;1993年,微软公司推出了 VISualBasic3.0版,增加了数据库开发技术和对象链接与嵌入技术(OLE)等功能;1995年,微软公司推出了 Visual Basic4.0版,改善了程序设计环境,与windows 95紧密结合;1996年,微软公司推出了VisualBasicS.0版,增加或增强了Internet开发、数据库访问、程序调试、ActiveX控件等方面功能;支持Internet开发和原始码编辑,是 VISualBasics.0的两大功能;1998年,微软公司推出了 VISualBasic6.O版,增强了数据库开发的功能及ActiveX控件等方面功能。 Visual Basic 的功能特点为:具有基于对象的可视化设计工具。在Visual Basic中,程序设计是基于对象的。对象是一个抽象的概念,是把程序代码和数据封装起来的一个软件部件,是经过调试可以直接使用的程序单位。许多对象都是可视的。程序员编写程序代码时,一般只在一些对象的事件过程中填写所需要的代码。事件驱动的编程机制。事件驱动是非常适合图形用户界面的编程方式。传统的编程是一种面向过程的方式,按程序事先设计的流程运行。在图形用户界面的应用程序中,用户的动作掌握着程序的运行流向,如单击“左移”按钮可控制标签向左移动,单击“右移”按钮,则可控制标签向右移动等。每个事件都能驱动一段程序的运行,程序员只要编写响应用户动作的代码,各个动作之间不一定有联系。这样的应用程序代码简单,既易于编写,又易于维护。提供了易学易用的应用程序集成开发环境。在Visual Basic集成开发环境中,用户可做下面所有的事情:设计界面、编写代码、调试程序、编译源程序为可执行程序,以及制作应用程序用户安装盘,以便安装到其他没有安装Visual Basic的Windows机器上运行程序。结构化的程序设计语言。Visual Basic的对象、事件过程、内部函数、自定义过程、模块等,都是一些独立的程序部件。设计程序就如果制造机器,只要设计程序部件,使用现成的程序部件,并组装这些程序部件。由于各个部件之间的相互独立、功能完整,所以易于分开维护,整个程序分块明确、结构清晰、易于掌握20。Visual Basic除了具有以上功能以外,还具有许多其他的特点,例如支持强大的数据库应用,使用ActiveX技术,网络功能开发,多种应用程序设计向导和完备的联机帮助功能。2.2 软件的开发环境 Visual Basic将一个应用程序称为一个工程。在启运Visual Basic的过程中,会看到一个对话框,如图2.1所示:图2.1 Visual Basic的启动对话框该对话框有三个选项卡:“新建”、“现存”和“最新”。“新建”代表完全从头开始建立一个新的工程;“现存”表示打开一个现有的工程;“最新”表示打开一个最近所编写并存盘的工程,在“新建”选项卡下,有多种程序类型选择,一般选择“标准EXE”类型。在其他两个选项卡下则会出现“打开”程序的对话框,要求选择要打开的程序文件名,最后都是单击“打开”按钮进入Visual Basic的集成开发环境(IDE)界面,如图2.2所示。2.2.1 常规组成部分Visual Basic6.0的程序也跟其他Windows应用程序一样,具有标题栏、菜单栏、工具栏等常规组成部分。标题栏的内容就是应用程序工程的名称加上“Microsoft Visual Basic(设计)”字样内容。菜单栏提供了编辑,设计和调试Visual Basic应用程序所以需要的菜单命令。工具栏是一些菜单命令的快捷按钮。这些常规部分就如同Microsoft Word等程一样,是Windows程序都有的必要组成部分。图2.2 Visual Basic的集成开发环境(IDE)界面2.2.2 Visual Basic 6.0特有的组成部分(1)窗体设计窗口窗体设计窗口是图二中间最前面标题栏为Form1的窗口,是要设计的的应用程序界面。用户通过更改窗体窗口的一些属性,添加一些其他控件对象到窗体窗口上并设计好各控件的属性,就基本上“画出”了应用程序的界面。以后运行应用户程序时,用户看到的界面就是这个设计好的窗体,并通过其中的对象与程序进行交互对话,得到交互结果。(2)代码窗口代码窗口就是图二中间部分窗体后面标题栏为“工程1- Form1(Code)”的窗口,通过选择“视图”/“代码窗口”命令,就可将代码窗口置于前面。代码窗口就是用来输入程序代码的地方,显示当前窗体中的程序代码,并可对代码进行编辑修改。要打开代码窗口有以下3种方法:选择“视图”/“代码窗口”命令。双击一个控件或窗体本身,从窗体窗口中打开代码窗口。从工程窗口中选择一个窗体或标准模块,并单击“查看代码”按钮。代码窗口右边的下拉列表框是对象下拉列表框。单击该下拉列表框会弹出下拉列表,列表中列出的项目有“(通用)”、当前窗体的类名Form,所有控件名称。无论窗体的名称改为什么,这里显示的都是固定的当前窗体类名Form。代码窗口下右边的下拉列表框是过程下拉列表框,单击该下拉列表框会弹出下拉列表,列表中列出所选对象的所有事件名。当左边下拉列表选定的项目是“(通用)”时,右边列表中列出的就是“(声明)”。列表下方的空白区就是代码区。在其中可以输入和编辑程序语句代码。Visual Basic有以下两类代码:“通用声明”代码。即左边下拉列表选择“(通用)”时,下面的代码区称为通用代码区,在这里写的代码对整个窗体范围起作用。通常在这里写一些窗体级通用变量的声明语句、通用的事自定义过程代码。对象事件过程代码。选择一个对象和一个事件,下面就对应一个对象的事件过程,过程的首末两句Visual Basic已自动给出,程序员只要填写中间的操作性语句。通用代码区和事件过程代码区之间、事件过程代码区和事件过程代码区之间都用横线分隔,这样使结构化的分块清晰。(3)工具箱窗口工具箱窗口存放了建立应用程序所需要的内部控件。内部控件共有20个,另外还有一个“指针”,它不算控件,仅用于移动窗体和其他控件,以及调整它们的大小,用户还可向工具箱添加Windows中已注册的其他外部控件。工具箱窗口中显示的控件只是代表各控件的类,是空控件。利用工具箱提供的控件类,用户可以很方便地在程序窗体上画出一个具体控件同(即控件的实例)。单击工具箱窗口的关闭按钮(“”按钮),可以隐藏工具箱窗口;选择“视图”/“代码窗口”命令,可以重新显示工具箱窗口。(4)工程资源管理器窗口用树状的层次管理方法来显示与工程有关的所有文件和对象的清单。该窗口有三个按钮,自左至右分别为“查看代码”、“查看对象”和“切换文件夹按钮”,其功能分别为:“查看代码”,显示代码窗口。“查看对象”,显示程序的窗体窗口。“切换文件夹”,以文件夹形式或不以文件夹形式显示当前工程的所有文件。(5)属性窗口通常在工程资源管理器窗口下面,由一个下拉列表和一个两栏的表格组成。下拉列表中列出当前工程的所有控件对象(包括窗体)的名称和所属的类别名(类名)。下面的两栏表格列出了所选对象的所有属性名、属性值。编程人员可以对对象的某些属性值进行修改。如果属性窗口不见了,可以选择“视图”/“代码窗口”命令以显示它。(6)其他窗口立即窗口在调试程序时使用,在运行程序时才有效。用户可直接在该窗口利用Print方法或直接在程序中用Debug.Print显示所关心的表达值。窗体布局窗口用于指定程序运行时的初始位置21。2.3 软件的面向对象目前,面向对象技术的研究领域概括起来主要有:面向对象的程序设计:面向对象的数据库技术;面向对象的系统分析和设计以及面向对象的操作系统、硬件系统等主要方向,其应用领域也在不断扩大,尤其是在一些复杂系统:如智能计算机、计算机辅助系统工程、办公信息系统的应用也愈来愈多。面向对象是一种认知方法学,它提供了从一般到特殊的演绎手段(如继承),又提供了从特殊到一般的归纳形式(如对象类)。面向对象的方法学认为:(1)客观世界是由各种“对象”所组成,任何事物都可看作对象,每个对象都有自己的运行规律和内部特点,每个对象都属于某个对象类,都是该对象类的一个元素。复杂的对象可以是由相对比较简单的各种对象以某种方式构成,不同对象之间相互作用就构成了要研究、分析和构造的客观系统。(2)通过类比,发现对象间的相似性,即对象间的共同属性,这就是构成对象类的根据。在按“类”、“子类”、“超类”的概念构成对象类的层次关系时,处于下一层次的对象可自然地继承位于上一层次的对象的属性。(3)对于已分成类的各个对象,可以通过定义一组“方法”来说明该对象的功能,也就是允许作用于该对象上的各种操作。对象间的相互联系是通过传递“消息”来完成的,消息是通知对象去完成一个允许作用于该对象的操作。至于该对象将如何完成这个操作的细节,则是封装在相应对象类的定义中的,对于外界是隐蔽的。综上所述,面向对象的方法学比较自然地模拟了人类认识客观世界的方式,使基于VB系统的设计带给人们分析、设计和实现系统的有效方法。2.3.1 面向对象的基本要素(1)对象(object)对象是面向对象方法的最基本、最重要的要素。面向对象方法认为世界是一个复杂对象,世界是由各种对象(object)组成,任何事物都可用对象来模拟,复杂对象是由比较简单的对象以某种方式经过层层组合而成。对象的概念具有广泛性,现实世界的事物在不同的应用领域有不同的信息描述形式。因此,可认为对象是任意事物的抽象,并是该事物的内在特性在某一应用领域的投影。(2)对象类(object class)面向对象另一个重要且具有特色的要素就是对象类。类(Class)是一组相同结构和行为的对象的描述,它是类型的一种实现。类可以是整体地代表一组对象,提供了所有相似对象的共同结构和行为的描述;也可是一个模板,用以生成给定类型的对象。2.3.2 对象状态在工程应用领域中,总体设计过程往往是自上而下,而详细设计过程则是自下向上的。对于工程应用中的设计对象,一般可用状态来描述,在对象模型中对象状态(state)与对象的结构的属性(attribute)相联系,对象的状态由属性的当前值组成。对象中复杂对象的状态取决于组成复杂对象的所有对象的状态。对于设计过程中的对象,根据其属性值,可将其状态分为三种:空状态(voidstate)、不完全状态 (incomplete state)和完全状态(completestate)。对象的空状态是总体设计或概念设计时产生的对象所处的状态,所有描述这个对象的信息为空。不完全状态是对象在设计过程中所处的状态,部分描述这个对象的信息仍为空。完全状态是设计过程中某一阶段结束后所处的状态,它的所有信息有一个完整无缺的描述。2.3.3 对象标识对象标识 (object identifier简记OD)是将一对象和其它对象加以区分的标识符。在数据库管理系统中,对象标识是由系统产生并进行统一维护的唯一标识符。为了保证对象引用的完整性,对象标识符在对象消亡时不能被重用。其中,对象模型的引入则丰富了模型的描述方法和实现途径。2.3.4 基本特性面向对象技术的基本特性主要有抽象性,封装性和继承性。(1)抽象性(Abstraction)广义上说,抽象是指对复杂现实世界的简明表示,也就是强调应用中所关心的信息而忽略非本质的、与其应用无关的信息。对象类是实现了的抽象数据类型,对象不仅可以表达对结构化数据的抽象,而且可表达对非结构化数据的抽象,从而使面向对象技术具有很强的建模能力,能够更自然、更直接、更充分地表达现实世界的事物,而不必像结构化编程语言那样,要经过转换与映射等处理。(2)封装性(Encapsulation)封装是一种信息隐蔽技术,用户只能见到对象封装界面上的信息,对象内部对用户是隐蔽的。这有利于用户集中精力去考虑所开发的系统各模块之间的关系等重要问题。(3)继承性(Inheritance)继承性是自动地共享类、子类和对象中的方法和数据的机制。以上简要介绍了面向对象方法学的基本观点、面向对象技术的基本要素及特点,为面向对象技术对VB系统的描述、分析、设计和实现过程作了铺垫。在建模过程中,虽然VB系统要管理的数据种类很多,差异很大,但是它们的设计思路与方法却是一致和相近的。为使系统程序的源代码简洁、可靠,以及最大程度的代码重用,VB系统的建模可使用面向对象的技术。2.4 软件使用控件简介合理的使用控件是提高开发效率的有效途径。开发程序时应用的常用控件包括:2.4.1 命令按钮(CommandButton)命令按钮是比较常用的控件,在本程序中,开始、中断或结束一个过程通常选择命令按钮。命令按钮的常用属性有:Cancel:设置一个命令按钮是否为“取消”按钮,若为“取消”按钮,则在程序运行时可以用“Esc”键选中该按钮,一个窗体中只能有一个“取消”按钮。Ture FalseCaption:设置该命令按钮上显示的文字(按钮的名字),可以使用 Caption 属性赋予控件一个访问键。在标题中,在想要指定为访问键的字符前加一个 (&) 符号。该字符就带有一个下划线。同时按下 ALT 键和带下划线的字符就可把焦点移动到那个控件上。为了在标题中加入一个 (&) 符号而不是创建访问键,需要在标题中加入两个即 (&) 符号。这样,在标题中只有单个 (&) 符号被显示而没有带下划线的字符。Default:设置一个命令按钮为该窗体的默认按钮,如果数值为默认按钮,则在程序运行时,可以直接用回车键选择该按钮。一个窗体只能有一个默认按钮。Style:设置命令按钮的外观,有“0Standard”标准按钮、“1Graphical”图形按钮两个属性值。Picture:设置命令按钮中要显示的图形,Style:1GraphicalDownPicture:设置命令按钮按下时要显示Style的图形,Style:1GraphicalDisabledPicture:设置命令按钮无效时要显示的图形,Style:1Graphical2.4.2 文本框控件(TextBox)TextBox 控件有时也称作编辑字段或者编辑控件,显示设计时输入的用户输入的、或运行时在代码中赋予控件的信息。常用属性:Text:设置文本框中显示的文字,可以在程序执行时用Object.text=”具体文字”改变。Maxlength:设置该文本框中输入字符串的长度限制,缺省为0,表示只受系统内存的限制,若设置为大于0的值,表示能最大输入的字符个数。MultiLine:设置是否以多行形式显示文本,Ture和False,可在程序执行时设置。PasswordChar:设置在输入字符时,在文本框中显示的字符。默认为空,显示输入字符本身,若设置为其他字符,则在输入字符时,显示该字符。Scrollbars:设置文本框是否有垂直或水平滚动条,它有0、1、2、3四种属性值,0没有滚动条,1水平滚动条,2垂直滚动条,3既有水平又有垂直滚动条。Locked 属性:返回或设置该控件的值是否允许编辑。2.4.3 标签控件(Label)标签一般在程序中用来显示标题、栏目名或一些其他标识。常用属性:AutoSize :返回或设置一个值,以决定控件是否自动改变大小以显示其全部内容。BackColor:返回或设置对象的背景颜色。ForeColor:返回或设置在对象里显示图片和文本的前景颜色。BackStyle:返回或设置一个值,它指定 Label 控件或 Shape 控件的背景是透明还是非透明的。Caption:表示该文本框中显示的文本、文字。Enabled:返回或设置一个值,该值用来确定一个窗体或控件是否能够对用户产生的事件作出反应。Visible:返回或设置一指示对象为可见或隐藏的值。Index:(控件数组)返回或设置唯一地标识控件数组中一个控件的编号。仅当控件是控件数组的元素时是有效的。Left:返回或设置对象内部的左边与它的容器的左边之间的距离。Top:返回或设置对象的内顶部和它的容器的顶边之间的距离。MouseIcon:返回或设置自定义的鼠标图标。MousePointer:返回或设置一个值,该值指示在运行时当鼠标移动到对象的一个特定部分时,被显示的鼠标指针的类型。Name:返回在代码中用于标识窗体、控件、或数据访问对象的名字。在运行时是只读的。TabIndex :返回或设置父窗体中大部分对象的 tab 键次序。2.4.4 框架控件(Frame)框架是一个容器,Frame 控件为控件提供可标识的分组。Frame 可以在功能上进一步分割一个窗体例如,把 OptionButton 控件分成几组。为了将控件分组,首先需要绘制 Frame 控件,然后绘制 Frame 里面的控件。这样就可以把框架和里面的控件同时移动。如果在 Frame 外部绘制了一个控件并试图把它移到框架内部,那么控件将在 Frame 的上部,这时需分别移动 Frame 和控件。常用属性:Caption: 表示该文本框中显示的文本、文字。Enabled: 返回或设置一个值,该值用来确定一个窗体或控件是否能够对用户产生的事件作出反应。Visible: 返回或设置一指示对象为可见或隐藏的值。2.4.5 图片框控件(PictureBox)(1)Picture 属性PictureBox 控件显示的图片由Picture属性确定。Picture属性可设置被显示的图片文件名,运行时使用LoadPicture函数载入图形。(2)AutoSize属性PictureBox控件不提供滚动条,在图片框中载入的图形将保持图片的原始尺寸,也就是说,如果图形尺寸比空件大,则超过的部分将被裁剪掉。AutoSize属性决定控件是否自动改变大小以显示其全部内容,若将设置为True, PictureBox控件将自动调整大小以显示完整图形。(3)ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight和ScaleMode属性每一个图形操作都要使用Visual Basic的坐标系统,在默认条件下,对象的左上角坐标为(0,0),水平坐标从左向右增大,垂直坐标自上而下增大,且所有坐标均为正,默认刻度单位为缇。坐标刻度有图片框的刻度属性ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight和ScaleMode来确定。ScaleLeft和ScaleTop属性设置左上角的坐标,ScaleWidth和ScaleHeight属性将在现有的有效绘图区域确定新坐标系的刻度。(4)PictureBox控件作为容器PictureBox控件可以用于其他控件的容器。在PictureBox控件上面可以加上其他控件,这些控件随PictureBox移动而移动,其Top和Left属性是相对PictureBox而言的,与窗体无关22。3 软件的实现3.1 关键技术软件的实现过程就是程序编码过程,它是把软件的详细设计变换成可执行的VB程序。3.1.1 动态链接库的调用动态链接库(DLL)是一种函数库,应用程序可以在运行时链接并使用它。由于Visual Basic本身并不提供对计算机外设进行底层操作的语句或函数,因而要利用DLL技术实现I/O控制。DLL函数和VB函数本质上是一样的,两者的唯一区别在于:VB的函数可以直接在代码中使用,而使用DLL的函数须先声明再使用。本软件用到的主要DLL函数声明如下:Public Declare Function BulkRead Lib DLL68013.dll (ByVal pipenum As Integer, ByRef rec As Byte, ByVal length As Integer) As IntegerPublic Declare Function BulkWrite Lib DLL68013.dll (ByVal pipenum As Integer, ByRef send As Byte, ByVal length As Long) As LongPublic Declare Function TranVerCmmd Lib DLL68013.dll (ByRef configuredata As Byte) As Byte动态链接库的工作原理如下:当它收到应用程序的数据传输请求后,会创建两个线程:数据传输线程和记录、显示线程,其中数据传输线程负责将数据写到应用程序要提交的内存;而记录、显示线程则负责给应用程序发送记录和显示消息。当应用程序接收到此消息后,便从它提交的内存中读取数据并存。用户应用程序的主要功能是开启或关闭USB设备、检测USB设备、设置数据传输帧数、通过USB接口传输并显示数据。下面就信号采集关键DLL函数进行简单的说明。(1)TranVerCmmd( ),该函数是向USB设备中发送控制命令,用与控制USB设备。例VB语句:configuredata(0) = &HB4, st = TranVerCmmd(configuredata(0) 初始化读数口控制命令。(2)BulkWrite( ),该函数是控制向设备中发送数据。VB语句:returnerr = BulkWrite(1, send(0), 4),表示一次向设备中发送4个字节的数据。(3)BulkRead( ),该函数是控制向设备中发送数据。VB语句:st=BulkRead (0, rec(0), 512),表示一次从设备中读出512个字节数据。3.2 各模块的实现3.2.1 软件主界面系统主界面是图形用户界面。该界面上由交互式的输入和输出两类对象。系统主界面主要分为两个区域:“控制区域”和“显示区域”。整个前面板如图3.1所示。控制区域主要包括主界面右边的图形按钮、左边的曲线操作和工具栏。图形按钮主要实现系统的各模块的功能,如:定标读值等。曲线操作和工具栏实现对曲线的复杂的显示控制如差值光标、曲线放大显示等。显示区域主要包括主界面中间部分的数据图形显示、回读文件的路径显示、图形按钮的操作提示以及曲线的值和差值显示。图3.1 软件界面3.2.2 自适应分辨率分辨率是和图像相关的一个重要概念,它是衡量图像细节表现力的技术参数。分辨率通常是以象素数来计量的,如:640480, 640为水平象素数,480为垂直象素数。分辨率(resolution)就是屏幕图像的精密度,是指显示器所能显示的像素的多少。由于屏幕上的点、线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内能显示的信息也越多,所以分辨率是个非常重要的性能指标之一。可以把整个图像想象成是一个大型的棋盘,而分辨率的表示方式就是所有经线和纬线交叉点的数目。常见显示器分辨率有以下几种,如表3.1所示:表3.1分辨率比值8006001.338807041.259606001.610247681.3310886121.7811528641.3312727951.612807201.7812807681.6712808001.612809601.33128010241.25例如:上表中分辨率的比值为五个数字:1.33,1.25,1.6,1.78,1.67;选择不通的分辨率,各控件所显示的位置会有所不同,因此需要对其进行调整。例如:对Picturel位置调整程序如下:If Rate = 1.25 Then Form1.Picture1.Top = 53 * Rate * ky Form1.Picture1.Height = 610 * Rate * ky Form1.Picture1.Left = 44 * Rate * kx + 5 Form1.Picture1.Width = 760 * Rate * kx End If,其中Rate为X方向与Y方向的像素比。3.2.3 采样读数温度测试系统软件的核心是采样读数,采样读数模块通过连接USB口来采集仪器的数据。采样读数包含两部分:读取实时数据和读取仪器数据。如图3.2所示:图3.2 采样读数图读取实时数据就是在测试过程中对数据进行实时的采集并通过USB口传给上位机软件,软件接收到数据后对数据进行实时的处理、实时的保存和动态显示温度曲线。温度测试实时曲线显示用PictureBox作为容器,其中涉及曲线,坐标轴网格线和坐标刻度的消隐和重绘。消隐的实现主要用背景色重绘曲线和网格线,并覆盖坐标刻度数字;重绘实时曲线和坐标轴网格线通过Line方法来实现方法实现。实时显示部分程序如下:Public Sub draw_data()x_least = x_least + 32 每次左移32个坐标单位x_most = x_most + 32Call draw_坐标线 画坐标线Call draw_坐标值 显示坐标值For ch_num = 1 To 48If Form7.ckbChannel(ch_num).Value = vbChecked Then 选择通道画图 x_step = (x_most - x_least) / 128 For X = x_least + x_step To x_most Step x_step PictureBox.Line-(X, data(ch_num, X), colordata(ch_num)Next XEnd IfNext ch_numEnd Sub其中x_least,x_most分别位横轴的最小与最大坐标,x_step为步长,ch_num为通道号。读取仪器数据就是在试验完成之后通过USB口将数据从仪器中的存储器中读出,然后将数据以文件形式保存在计算机中并在屏幕上显示温度曲线。文件保存程序如下:发送使能读信号configuredata(0) = &HB3st1 = TranVerCmmd(configuredata(0)For l = 0 To 84379st = BulkRead(0, rec(0), 512) 一次读512个字节For m = 0 To 511datain(m + 1 + l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电瓶车保险相关知识培训课件
- 北京五年级考试数学题及答案
- 电焊工职业健康知识培训课件
- 高温防护安全知识培训课件
- 2-Ethyl-ss-ketobutiryl-SCoA-2-Ethyl-ss-ketobutiryl-coenzyme-A-生命科学试剂-MCE
- 新解读《GB-T 25122.1-2018轨道交通 机车车辆用电力变流器 第1部分:特性和试验方法》
- 会考物理考试题及答案
- 电焊学徒基础知识培训总结
- 保定动力技校考试题目及答案
- 蚌埠四中近期考试试卷及答案
- 2024中国中煤销售集团总部及所属企业电力营销专业人才招聘笔试参考题库附带答案详解
- 2025年高校教师资格证考试题库(带答案能力提升)
- 初中英语沪教牛津版单词表(共6册)
- 学校安全隐患自查报告及整改措施
- 酒店客房验收工程项目检查表
- 个人健康个性化营养搭配与服务提供系统建设
- 加强教学常规管理提高教学质量
- 产品包装设计与印刷流程手册
- 随机动态规划与强化学习-洞察分析
- 肾占位性变病
- 大型运输车辆交通安全教育
评论
0/150
提交评论