实验34 基于LabVIEW的虚拟仪器技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验34 基于LabVIEW的虚拟仪器技术
实验目的
1. 了解虚拟仪器技术的基本概念。
2. 熟悉并掌握LabVIEW7.1软件的开发环境及基本使用方法。
3. 学习编写基于USB接口的虚拟仪器数据采集器的方法。
仪器设备
安全注意事项
1. 在整个实验过程中,NIUSB6008多通道数据采集器的任何一个模拟信号输入端口的输入电压的峰值不能超过10V,而数字信号端口的输入输出电压峰值不能大于5.8V,否则会造成损坏。
2. 在“D:\学生实验数据\物理系2004级”中相应的专业目录下以“学号+姓名”为名创建一个子目录,实验过程中编制的所有程序都保存在该目录下,以便教师批改实验报告时检查。
原理概述
测控仪器已经经历了模拟式,数字式,智能化仪器三个阶段,现在的重要发展方向是虚拟仪器技术。为了便于与VI技术区分,我们称前三种仪器为传统仪器。目前实验室中使用的各种能脱离计算机“独立”使用的仪器,如数字万用表,函数信号发生器,示波器等都属于传统仪器。此类仪器在使用过程中存在几个明显的缺点。
(1)一台传统仪器只能实现较单一的功能,扩展性、互换性、升级性较差。如数字万用表不能作为函数信号发生器使用,数字电桥不能作为示波器使用一样。科研工作者和工程师在实际工作过程中若要完成某种稍微复杂一些的测试任务,往往需要购买示波器、数字万用表、频谱分析仪、函数信号发生器、多通道数据采集器等多种设备,成本高昂。而且这些仪器还相对独立,绝大多数无法升级。随着测量任务的改变,往往需要购买性能更强的同类仪器,甚至是其他种类的仪器。
(2)在需要自动测量和控制的情况下,特别是需要自行开发专用的测控系统时,通常都需要编制控制程序。在虚拟仪器技术出现之前,这些工作大部分是用汇编、C或BASIC等顺序执行的文本编程语言来完成。对于一些涉及多台仪器的较大型测试系统,或是功能越来越复杂的数字化、智能化仪器,其控制程序少则数千行,多则数万行甚至更多,开发过程非常困难,费时费力。
随着个人计算机的出现,将计算机与测控仪器紧密结合在一起的虚拟仪器技术很好的克服了传统仪器的上述缺点。计算机和仪器的结合是目前仪器发展的一个重要方向,这种结合大概有两种方式。一种是将计算机装入仪器,其典型例子就是所谓智能化的仪器,另一种方式是将仪器装入计算机,以通用的计算机硬件及操作系统为依托,实现各种仪器的功能。虚拟仪器主要是指这种方式。
1. 虚拟仪器技术简介
所谓虚拟仪器是指基于计算机的测控平台,它可以代替传统的测控仪器,如示波器、逻辑分析仪、信号发生器、频谱分析仪等;可集成于自动控制、工业控制系统;可自由构建成专有仪器系统。一台完整实用的虚拟仪器主要有三个部分组成:虚拟仪器平台,开发软件、模块化I/O硬件。
(1)虚拟仪器平台是虚拟仪器的核心,其运行着虚拟仪器开发软件,控制着整台虚拟仪器的工作。
(2)虚拟仪器开发软件可实现对各种模块化I/O设备的控制。
(3)模块化I/O硬件是指通过PCI、PXI、PCMCIA、USB、1394、GPIB等各种接口与虚拟仪器平台连接,以实现各种测控仪器功能的硬件设备。
虚拟仪器将计算机强大的数据处理能力和仪器硬件的测控能力结合起来,大大缩小了仪器硬件的成本和体积,并能随着计算机技术的发展而不断升级。因此,广义来说,任何利用计算上由软件实现的“虚拟面板”来控制和操作的仪器,都可以称为虚拟仪器。但需要保持清醒的是,VI虽有许多传统仪器不可替代的优点,但任何技术都有一定的局限性,在需要测量的物理量比较单一、测量数据不多的应用场合,传统仪器仍然是最快速、最简便的解决方法。
2. LabVIEW简介
LabVIEW是实验室虚拟仪器集成环境(Laboratory Virtual Instrument Engineering)的简称,由NI公司的创始人杰姆·特鲁查德博士、杰夫·柯德斯凯博士以及他们的好友杰克·麦克里森等人设计,与1986年5月首先在计算机上实现,改时间甚至早于Microsoft公司推出图形化的Windows操作系统。由于LabVIEW中定义了数据类型、结构类型、模块调用语法规则等编程语言所需要的各种基本要素,在功能完整性和应用灵活性上不逊于任何高级语言,因此LabVIEW不仅仅是一个软件开发环境,而与常规的BASIC、C、Delphi等语言一样,是一种编程语言。但与这些文本编程语言不同,LabVIEW采用的是图形化的编程方式,故称为G语言,美国许多理工科院校都将该语言列为一门必修课。
用LabVIEW编写的每一个VI都由前面板、框图程序、图标/连接端口三部分组成。
前面板,用于设置输入数值和观察输出量,用于模拟真实仪表的前面板。在程序前面板上,输入量被称为控制,输出量被称为显示。控制和显示是以各种图标形式出现在前面板上的,如旋钮、开关、按钮、图表、图形等,这使得前面板直观易懂。
每一个前面板都对应着一段框图程序。框图程序用LabVIEW图形编程语言编写,可以把它理解成传统程序的源代码。框图程序由端口、节点、图框、和连线构成。其中端口被用来与程序前面板上的控制和显示单元传递数据,节点被用来实现函数和功能调用,图框被用来实现结构化程序控制命令,而连线代表程序执行过程中的数据流,定义了框图内的数据流动方向。
图标/连接端口是子VI被其他VI调用的借口。图标是子VI在其他程序框图中被用来调用的节点表现形式;而连接窗口则表示节点数据的输入/输出口,类似于函数的参数。连接端口和前面板上的控制和显示单元必须一一对应。
3. 数据采集
自动化的数据采集是虚拟仪器的最重要的应用之一,NI公司提供了DAQ从软件到硬件的全面解决方案。前面已经说明,一个完整的虚拟仪器系统由虚拟仪器平台、开发软件、模块化I/O硬件等三部分组成。本实验中我们将采用台式计算机作为平台,用基于USB借口的USB6008多功能数据采集器作为模块化I/O,而开发软件就采用LabVIEW。其中提供了若干个专门用于数据采集任务的函数,如DAQ Assistant、I/O Assistant等,使得编制自动化的数据采集程序变得非常简单。同时为了安装和调试的方便,还附加了Measurement & Automation和VI Logger两个工具软件。其中前者用于检测已连接到虚拟仪器平台的模块化I/O硬件,而后者可直接作为数据采集、处理、存储、检查的控制程序,可用来与同学们编写的LabVIEW程序对照。
USB6008多功能数据采集器共有32个端口。提供了8个模拟信号输入(analog input)通道,2个模拟信号输出(analog output)通道,12个数字信号输入输出(digital input/output)通道,1个32位的计数器(counter)以及2.5V和5V的直流电源。其中8个AI通道可在差分模式(Differential Mode)下使用以扩展电压测量范围,但该模式下只有4个AI通道。
USB6008的32个端口的定义列于表1。在使用过程中应确保任何一个AI端口的输入电