基于LabVIEW的虚拟仪器技术.docx
《基于LabVIEW的虚拟仪器技术.docx》由会员分享,可在线阅读,更多相关《基于LabVIEW的虚拟仪器技术.docx(21页珍藏版)》请在冰豆网上搜索。
基于LabVIEW的虚拟仪器技术
基于LabVIEW的虚拟仪器技术
【实验目的】
1了解虚拟仪器技术的基本概念;
2熟悉并掌握LabView7.1软件的开发环境及基本使用方法;
3学习编写基于USB接口的虚拟数据采集器的方法。
【仪器设备】
计算机1台(运行Windows操作系统,并已安装了LabView7.1软件),NIUSB6008多通道数据采集器1只,便携式数字万用表1只,示波器1台,函数信号发生器1台,1.5V电池1只,钟表用一字螺丝批1把,导线若干。
【安全注意事项】
1在整个实验过程中,NIUSB6008多通道数据采集器的任何一个模拟信号输入端口的输入电压的峰值不能大于10V,而数字信号端口的输入输出电压峰值不能大于5.8V,否则会造成损坏。
该设备价值近两千元,在使用前请认真阅读说明书。
2在“D:
\学生实验数据\物理系2004级”中相应的专业目录下以“学号姓名”(例如:
04334001张三)为名创建一个子目录,实验过程中编制的所有程序都保存在该目录下,以便教师批改实验报告时检查。
【原理概述】
测控仪器已经经历了模拟(指针)式仪器、数字式仪器、智能化仪器等三个阶段,现在的重要发展方向是虚拟仪器(VirtualInstrument,简称VI)技术。
为了便于与VI区分,我们称前三种仪器为传统仪器。
目前实验室中使用的各种能脱离计算机“独立”使用的仪器,如数字万用表、函数信号发生器、示波器等都属于传统仪器。
此类仪器在使用过程存在几个明显的缺点:
(1)一台传统仪器只能实现较单一的功能,扩展性、互换性、升级性较差。
如数字万用
表不能作为函数信号发生器使用,数字电桥不能作为示波器使用一样。
科研工作者和工
程师在实际工作过程中若要完成某种稍微复杂一些的测试任务,往往需要购买示波器、数字万用表、频谱分析仪、函数信号发生器、多通道数据采集器等多种设备,成本高昂。
而且这些仪器还相对独立,绝大多数无法升级。
随着测量任务的改变,往往需要购买性能更强的同类仪器,甚至是其它种类的仪器。
(2)在需要自动测量和控制的情况下,特别是需要自行开发专用的测控系统时,通常
都需要编制控制程序。
在虚拟仪器技术出现以前,这些工作大部分是用汇编、C或BASIC等顺序执行的文本编程语言来完成的。
对于一些涉及多台仪器的较大型测试系统,或是功能越来越复杂的数字化、智能化仪器,其控制程序少则数千行,多则数万行甚至更多,开发过程非常困难,费时费力。
随着个人计算机的出现,将计算机与测控仪器紧密结合在一起的虚拟仪器技术很好地克服了传统仪器的上述缺陷。
计算机和仪器的结合是目前仪器发展的一个重要方向,这种结合大概有两种方式。
一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。
另一种方式是将仪器装入计算机。
以通用的计算机硬件及操作系统为依托,实现各种仪器功能。
虚拟仪器主要是指这种方式。
1虚拟仪器技术简介
所谓虚拟仪器是指基于计算机的测控平台,它可以代替传统的测控仪器,如示波器、逻辑分析仪、信号发生器、频谱分析仪等;可集成于自动控制、工业控制系统;可自由构建成专有仪器系统。
如图1所示,一台完整实用的虚拟仪器主要由三个部分组成:
虚拟仪器平台、开发软件、模块化I/O硬件。
(1)虚拟仪器平台是虚拟仪器的核心,其运行着虚拟仪器开发软件,控制着整台虚拟仪器的工作。
该平台可以是我们平时使用的台式计算机、笔记本计算机、PDA,也可以是NI公司生产的专用PXI平台等。
(2)虚拟仪器开发软件可实现对各种模块化I/O设备的控制。
目前应用最广、发展最快、功能最强的虚拟仪器开发软件当属美国国家仪器(NationalInstruments,简称NI)公司生产LabVIEW。
(3)模块化I/O硬件是指通过PCI、PXI、PCMCIA、USB、1394、GPIB等各种接口与虚拟仪器平台连接,以实现各种测控功能的硬件设备。
例如类似于插在计算机内部插槽上的PXI模块化仪器,通过USB口连接的多功能数据采集器等。
这些硬件大多是完成一些最基本的物理量的测控,通过这些基础硬件的不同组合,就可以实现多种测控仪器的功能。
由于这些仪器本身都没有面板,其控制和显示都通过计算机屏幕上出现的“虚拟面板”来完成,而不是传统意义上的一台“独立”的仪器,因此称为虚拟仪器。
(1)虚拟仪器平台
(2)虚拟仪器开发软件(3)模块化I/O硬件(4)被测控系统
图1虚拟仪器主要结构
虚拟仪器将计算机强大的数据处理能力和仪器硬件的测控能力结合起来,大大缩小了仪器硬件的成本和体积,并能随着计算机技术的发展而不断升级。
因此,广义来说,任何利用计算上由软件实现的“虚拟面板”来控制和操作的仪器,都可以称为虚拟仪器。
但需要保持清醒的是,VI虽有许多传统仪器不可替代的优点,但任何技术都有一定的局限性。
在需要测量的物理量比较单一、测量数据不多的应用场合,传统仪器仍然是最快速、最简便的解决方法。
目前,NI公司是世界上最大的虚拟仪器供应商。
打开该公司的主页,可以看到其产品覆盖了信号调理、运动控制、机器视觉、数据采集、工业控制和分布式I/O、实时系统、远程控制等许多方面,在包括航空、航天、通信、汽车、半导体和生物医学等世界范围的众多领域都得到广泛应用。
世界500强企业中有超过90豫的公司均采用NI的虚拟仪器产品,而欧美高校中有超过二分之一的科研实验室采用NI的虚拟仪器来搭建测试系统。
2LabView简介
LabVIEW是实验室虚拟仪器集成环境(LaboratoryVirtualInstrumentEngineering
Workbench)的简称,由NI公司的创始人杰姆·特鲁查德(JamesTruchard)博士、杰夫·柯德斯
凯(JeffKodosky)博士以及他们的好友杰克·麦克里森等人设计,于1986年05月首先在Mac原intosh计算机上实现,该时间甚至早于Microsoft公司推出图形化的Windows操作系统。
由于LabVIEW中定义了数据模型、结构类型、模块调用语法规则等编程语言所需要的各种基本要素,在功能完整性和应用灵活性上不逊于任何高级语言,因此LabVIEW不仅仅是一个软件开发环境,而与常规的BASCI、C、Delphi等语言一样,是一种编程语言。
但与这些文本编程语言不同,LabVIEW采用的是图形化的编程方式,故称为G(Graph)语言,美国许多理工科院校都将该语言列为一门必修课。
经过20年的不懈努力,LabVIEW现已发展到8.0中文文档版。
由于虚拟仪器的概念最早是由特鲁查德博士等人在设计LabVIEW的过程中提出的,因此虚拟仪器狭义上仅指用LabVIEW编写的程序,这些程序往往以“.VI”作为扩展名。
图2示出了LabVIEW的工作界面。
用LabVIEW编写的每一个VI都由前面板(图2a)、框图程序(图2b)、图标/连接端口三部分组成。
下面以一个虚拟温度计为例,说明一下VI程序的基本构成。
(a)前面板窗口(b)框图程序窗口
图2LabVIEW开发环境
前面板用于设置输入数值和观察输出量,用于模拟真实仪表的前面板。
在程序前面板上,输入量被称为控制(Controls),输出量被称为显示(Indicators)。
控制和显示是以各种图标形式出现在前面板上的,如旋钮、开关、按钮、图表、图形等,这使得前面板直观易懂。
图3(a)是一个虚拟温度计的前面板。
(a)前面板(b)框图程序图3虚拟温度计前面板及框图程序
每一个前面板都对应着一段框图程序。
框图程序用LabVIEW图形编程语言编写,可
以把它理解成传统程序的源代码。
框图程序由端口、节点、图框和连线构成。
其中端口被用来与程序前面板上的控制和显示单元传递数据,节点被用来实现函数和功能调用,图框被用来实现结构化程序控制命令,而连线代表程序执行过程中的数据流,定义了框图内的数据流动方向。
上述虚拟温度计的框图程序示
于图3(b)。
图标/连接端口是子VI被其它VI调用的接口。
图
标是子VI在其他程序框图中被调用的节点表现形
式;而连接端口则表示节点数据的输入/输出口,类
似于函数的参数,连接端口与前面板上的控制和显
示单元必须一一对应。
图4为虚拟温度计的图标/
连接端口。
连接端口一般情况下隐含不显示,除
非用户选择打开观看它。
图4虚拟温度计的图标和连接端口
3.数据采集DataAcquisition(DAQ)
自动化的数据采集是虚拟仪器最重要的应用之一,NI公司提供了DAQ从软件到硬件的全面解决方案。
前面已经说明,一个完整的虚拟仪器系统由虚拟仪器平台、开发软件、模块化I/O硬件等三部分组成。
本实验中我们将采用台式计算机作为平台,用基于USB接口的USB6008多功能数据采集器作为模块化I/O,而开发软件就采用第2节介绍的Lab原VIEW7.1。
其中提供了若干个专门用于数据采集任务的函数,如DAQAssistant、I/OAssis原tant等,使得编制自动化的数据采集程序变得非常简单。
同时为了安装和调试的方便,还附加了Measurement&Automation和VILogger两个工具软件。
其中前者用于检测已连接到虚拟仪器平台的模块化I/O硬件,而后者可直接作为数据采集、处理、存储、检查的控制程序,可用来与同学们编写的LabVIEW程序进行对照。
USB6008多功能数据采集器(以下简称USB6008)的外形如图5所示,共有32个端口。
提供了8个模拟信号输入(analoginput,简称AI)通道,2个模拟信号输出(analogoutput,
AO)通道,12个数字信号输入输出(digitalinput/output,DIO)通道,1个32位的计数器(counter),以及2.5V和5V的直流电源。
其中8个AI通道可在差分模式(DifferentialMode)下使用以扩展电压测量范围,但该模式下只有4个AI通道。
【实验内容】
1.学习并掌握LabVIEW8.2Espress软件的基本特性和使用方法.
(1).启动LabVIEW8.2
(2).做第一章(LabVIEW虚拟仪器入门)主要步骤:
基于模板中打开一个新VI
在前面板中添加输入控件
更改信号类型
连接程序框图对象
调整信号
在图上显示两个信号
自定义旋钮控件
自定义波形
完成后如图所示:
图4采集信号程序框图
图5采集信号前面板
(3)第二章(分析并存储信号)主要步骤:
添加一个仿真信号
在程序框图中定义用户界面
使用错误列表窗口
控制执行速度
使用表格显示数据
完成后如图所示:
图6减少采样点程序框图
图7减少采样点前面板
(4)第四章(采集数据及与仪器通信)主要步骤:
创建NI-DAQmx任务
编辑NI-DAQmx任务
完成后如图所示:
图8readvoltage程序框图
图9readvoltage前面板
2利用LabVIEW和USB6008编制真实的信号测量系统
(1)模拟输入(AnalogInput)端口的检测:
Mode选择Continuous,InputConfiguration选择
Differential。
分别在ai0端口(2和3脚)间加1.5V直流,在ai1端口(5和6脚)间加正
弦波(Up=
击
3V,f=100Hz),点Start按钮测量,观察并记录测量值。
其中rate=10000Hz
SamplesToRead=200
如图所示
图10模拟输入(AnalogInput)端口的检测
(2)电压输出(VoltageOutput)端口的检测:
ao0端口(14和16脚)输出电压
在0-5V内取若干个值,点击Update并用数字万用表测量,最后画出电压标定曲线
(3)运行LabVIEW7.1软件,用LabVIEW编写一虚拟4通道数字电压表,在USB6008的ai0~ai3端口分别输入1.5V的直流电压,并用虚拟数字电压表测量各端口输入电压的大小。
主要步骤为:
1.新建一个新VI
2.在程序框图中,在函数选板中选择Express>>输入,并选择DAQAssistantExpressVI.
3.在其属性对话框中点击AddChannels并选择ai0创建一个通道,如图所示,并用同样的方法再创建三个通道.
图11在属性对话框中创建通道
4函数选板中搜索While循环,在程序框图上放置一个While循环,将择DAQAssistantExpressVI和图形显示控件包围在围.While循环的停止按钮与择DAQAssistantExpressVI的stop输入端相连.而ExpressVI的stopped输出端则与While循环的条件接线相连.如图所示.
图12添加While循环与DAQAssistantExpressVI
5.在择DAQAssistantExpressVI的data输出端单击右键,在信号操作选板中选择动态转换
如图所示
图13添加动态转换
6.右击动态数据转换图标的输出端,在数组选板中选择抽取一维数组,并向下拉其图标,使其出现四个输出端口,如图所示
图14添加抽取一维数组
7.在抽取一维数组的每一个输出端单击右键,在创建中选择显示控件,并改名为"电压表1""电压表2""电压表3""电压表4",如图所示
图15虚拟4通道数字电压表程序框图
图16虚拟4通道数字电压表前面板
【数据记录及分析】
万用表/V
0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
ai0/V
-0.00216
0.248
0.436
0.64
0.854
1.05
1.21
1.43
1.67
ai1/V
0.00448
0.203
0.432
0.616
0.825
1.08
1.29
1.45
1.65
万用表/V
1.8
2.0
2.2
2.4
2.6
2.8
3.0
3.2
3.4
ai0/V
1.87
2.04
2.28
2.42
2.6
2.84
3.07
3.24
3.42
ai1/V
1.84
2.04
2.22
2.46
2.62
2.85
3.02
3.24
3.48
万用表/V
3.6
3.8
4.0
4.2
4.4
4.6
4.8
5.0
ai0/V
3.64
3.86
4.04
4.24
4.47
4.67
4.86
5.04
ai1/V
3.68
3.87
4.06
4.22
4.45
4.66
4.87
4.99
电压定标记录数据:
表1 电压定标数据
定标曲线如图所示:
图17 ai0端口的定标曲线
图18 ai1端口的定标曲线
【思考题】
1.虚拟仪器与传统的测量仪器相比有什么异同?
虚拟仪器能否用来进行实际的测量?
答:
相同点:
虚拟仪器与传统仪器同样有测控功能,都能测取实验数据。
如:
示波器、逻辑分析仪、信号发生器、频谱分析仪等。
不同点:
传统仪器能独立于计算机,一台传统仪器只能实现较单一的功能,扩展性、互换性、升级性较差,在需要自动测量和控制的情况下,特别是需要自行开发专用的测控系统时,通常都需要编制控制程序;而虚拟仪器要基于计算机的测控平台,可集成于自动控制、工业控制系统;可自由构建成专有仪器系统。
只要接上外部硬件设备,虚拟仪器也能进行实际的测量。
2.一台能够正常工作的虚拟仪器包括哪几个主要组成部分?
答:
(1)虚拟仪器平台
(2)虚拟仪器开发软件(3)模块化I/O硬件(4)被测控系统