虚拟仪器设计技术实践教程Version113April2.docx
- 文档编号:23088107
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:49
- 大小:1.05MB
虚拟仪器设计技术实践教程Version113April2.docx
《虚拟仪器设计技术实践教程Version113April2.docx》由会员分享,可在线阅读,更多相关《虚拟仪器设计技术实践教程Version113April2.docx(49页珍藏版)》请在冰豆网上搜索。
虚拟仪器设计技术实践教程Version113April2
虚拟仪器设计技术
实践教程
东南大学仪器科学与工程学院
二〇〇八年四月
基础实验
实验一熟悉LabVIEW软件工作环境与NIELVIS实验平台
1.1实验目的
1)熟悉LabVIEW软件工作环境。
2)熟悉NIELVIS实验平台的功能、特点与使用方法。
3)了解数据采集卡的功能并掌握采集卡的测试。
1.2预习要求
了解有关VI的基本知识和原理和LabVIEW的基本操作。
1.3实验内容
1)了解LabVIEW8的编程运行环境,熟悉前面板的工具选板和程序框图的函数选板的主要控件的位置与操作。
2)设计一个简单的温度测量仪。
功能要求:
具有开关,能够显示源信号(电流信号)大小和温度数据。
具体设计过程见实验提示部分。
3)熟悉NIELVIS实验平台,并完成以下工作:
(1)采集卡的诊断:
进入Measurement&Automation环境后,在mysystem下的devicesandinterfaces中找到采集卡pci-6251,通过鼠标右键选择Self-Test会自动弹出对话框,报告显示设备是否通过测试。
(2)采集卡的自标定:
找到采集卡pci-6251,通过鼠标右键选择Self-calibration即可。
(3)采集卡的详细测试:
在MAX中找到采集卡pci-6251,通过鼠标右键选择testpanels进入测试面板并完成以下检测过程:
·模拟输入检测:
用导线把ach0+连到+5v上,ach0-连到ground上,在analoginput标签中的channelname选择ai0,inputconfiguration选择rse,最后按start按钮采集信号,将会采集到5v电压。
·模拟输出检测:
把dac0连到cha+上,cha-连到ground上,在output标签中选择通道ao0,打开NIELVIS自带的oscilloscope,调整outputvalue看oscilloscope上显示的是否与outputvalue相同。
·计数器测试:
计数器测试有脉冲生成和边缘计数两种模式。
正常进行边缘计数时,计数值会不断增加。
(4)实验平台的标定:
为了使variablepowersupplies和functiongenerator的输出更准确,在使用前需要对平台进行标定。
实验平台标定的步骤如下:
1.开启实验平台后面的电源
2.从开始菜单选择程序>>NationalInstruments>>NIELVIS3.0>>calibrationwizard
3.根据向导完成操作。
(5)实验平台使用
1.开启实验平台后面的电源
2.从开始菜单选择程序>>NationalInstruments>>NIELVIS3.0>>NIELVIS
3.点击configure按钮,在DAQDEVICE里选择DEV1:
PCI—6251,点击check按钮,如果成功就会出现Communicationestablishedsuccessfully这样的提示信息。
4.按ok按钮结束。
设置好后,NIELVIS提供的做好的仪器就可使用了。
5.选择oscilloscope和functiongenetator仪器,用导线把func_out连到cha+,ground连到cha-,前面板functiongenerator中的manual开关向下拔,看oscilloscope能否显示functiongenerator的信号。
1.4实验提示
1)LabVIEW是一种用图标代替文本行创建应用程序的图形化编程语言。
LabVIEW的编程包括前面板设计和程序框图设计两部分。
前面板的设计与其他可视化编程语言相似,但是提供更加丰富的控件和显示效果。
程序框图采用的是G代码,用图标代替函数,用连线表示数据流向,更加直观且易学易用。
2)简单温度测量仪的设计原理及步骤:
(1)原理:
实际的温度测量仪有多种测量方法。
以最常用的温度传感器AD590集成温度传感器为例,在一定温度范围内可将温度数据线性变换为电流信号,其转换公式为:
(1.1)
其中
为电流,
为温度,
为温度系数。
整个温度测量仪的工作过程为:
温度传感器将温度数据转化为电流信号,电流信号经过模数转换为计算机可以识别的数字信号,再由本次将要实现的虚拟温度测量仪显示电流数据并计算显示出温度数据。
为了设计方便,用一个随机数代替温度传感器输出的电流数据,同时假设k=1μA/K,假定温度传感器的线性范围是0~100℃,即273.15~373.15K,则电流数据的范围应该为273.15~373.15K。
(2)设计步骤:
首先是前面板的设计。
参考前面板如图1.1所示,包括一个电源开关、一个指示灯、一个模式转换开关(用于摄氏温度和华氏温度显示方式的切换)、一个电流表(显示电流数据)、一个温度计(用于显示温度数据)、一个上凸框(RaiseFrame)、一个标签显示仪器名称和一个程序运行结束按钮(停止)。
其次是程序框图的设计。
参考程序框图如图1.2所示。
需要说明的是选择控件如图1.3所示,其中s是布尔量,真时输出值为t,假时输出值为f。
图1.4是时间延迟模块,单位是毫秒。
本例使用while循环的目的是为程序连续执行。
图1.1虚拟温度测量仪前面板
图1.2实验一程序框图设计
图1.3选择模块
图1.4时间延迟(等待)模块
3)数据采集卡简介
(1)数据采集卡的功能:
一个典型的数据采集卡具有模拟输入、模拟输出、数字I/O、计数器/计时器等功能,这些功能分别由相应的电路来实现。
实验采用的是NIM系列的PCI-6251采集卡。
模拟输入是采集卡最基本的功能。
它一般由多路开关(MUX)、放大器、采样保持电路以及A/D组成,通过这些模块,一个模拟信号就可以转化为数字信号。
A/D的性能和参数直接影响着模拟输入采集的质量,要根据实际需要的精度来选择合适的A/D。
电压范围由A/D数字化信号的最高和最低电压决定。
一般情况下,采集卡的电压范围是可调的,所以可选择和信号电压变化范围相匹配的电压范围以充分利用分辨率范围,得到更高的精度。
PCI-6251有8个差分或者16单端输入口,分辨率为16bits,单通道的最大采样速率为1.25MS/s。
电压范围可选择±10V,±5V,±2V,±1V,±0.5V,±0.2V,±0.1V。
对应的最小分辨电压如表1.1所示。
表1.1NIELVIS最小分辨电压
InputRange
NominalResolutionAssuming5%OverRange
-10V~10V
320μV
-5V~5V
160μV
-2V~2V
64μV
-1V~1V
32μV
-500mV~500mV
16μV
-200mV~200mV
6.4μV
-100mV~100mV
3.2μV
模拟输出通常是为采集系统提供激励。
输出信号受数模转换器(D/A)的建立时间、转换率、分辨率等因素影响。
建立时间和转换率决定了输出信号幅值改变的快慢。
建立时间短、转换率高的D/A可以提供一个较高频率的信号。
PCI-6251有2个单端输出口,分辨率为16bits,建立时间为2μs,转换率为20V/μs。
数字I/O通常用来控制过程、产生测试信号、与外设通信等。
它的重要参数包括:
数字口路数(line)、接收(发送)率、驱动能力等。
PCI-6251有24个数字I/O口,分为三组8(P0.<0..7>),16(PFI<0..7>/P1,PFI<8..15>/P2)。
计数器包括三个重要信号:
门限信号、计数信号、输出。
门限信号实际上是触发信号——使计数器工作或不工作;计数信号也即信号源,它提供了计数器操作的时间基准;输出是在输出端口上产生脉冲或方波。
计数器最重要的参数是分辨率和时钟频率,高分辨率意味着计数器可以计更多的数,时钟频率决定了计数的快慢,频率越高,计数速度就越快。
PCI-6251有2个计数器,时钟频率为80MHz,20MHz,0.1MHz,分辨率为32bits。
(2)数据采集卡的软件配置
通常,数据采集卡都有自己的驱动程序,该程序控制采集卡的硬件操作,当然这个驱动程序是由采集卡的供应商提供,用户一般无须通过低层就能与采集卡硬件打交道。
NI公司提供了一个数据采集卡的配置工具软件——Measurement&AutomationExplorer,它可以配置NI公司的硬件和软件,比如执行系统测试和诊断、增加新通道和虚拟通道、自我标定等。
实验采用的软件是DAQ8.0.1,该版本支持虚拟采集设备,没有传统的DAQVI,但可以使用NI-DAQmx,它是LabVIEW7.0以来推出的新版DAQ库,增加了DAQASSISTANT,一个配置测量任务、通道和标定的图形化接口,增加了与ANSIC、LABWINDOWS中API函数相近的API函数和功能,包括.net和C++接口。
在LabVIEW8.0的环境下可以使用DAQASSISTANT来做NI-DAQmx测量,用户可以使用它来产生基于某一任务的NI-DAQm程序。
4)实验平台简介
本实验使用的是NIELVIS实验平台:
(1)NIELVIS的硬件组成如图1.5所示。
图1.5NIELVIS实验平台
(2)NIELVIS实验平台的前面板
图1.6NIELVIS实验平台的前面板
DigitalMultimeter(数字万用表),Oscilloscope(示波器),FunctionGenerator(函数发生器),VariablePowerSupplies(可调电压源)
Bypass按钮:
当它置于normal时,用于使能软件控制。
一般设置于normal。
Manual按钮:
当它置于Manual时,旁边的指示灯亮,可用前面板的按钮调节。
反之可在软件窗口调节。
DMM面板中用CURRENTHI和CURRENTLO测电流、电感、电阻。
(3)NIELVIS实验平台的万用板
NIELVIS实验平台的万用板引出了一些常用端口,使信号能连接到采集卡或者NIELVIS里自带的虚拟仪器。
这些端口都按功能分组排列。
其中输入端口和采集卡的输入通道的对应关系如表1.2所示。
表1.2输入端口和采集卡的输入通道的对应关系
NIELVISInputChannel
DAQDeviceInputChannel
ACH0+
AI0
ACH0-
AI8
ACH1+
AI1
ACH1-
AI9
ACH2+
AI2
ACH2-
AI10
ACH3+
AI3
ACH3-
AI11
ACH4+
AI4
ACH4-
AI12
ACH5+
AI5
ACH5-
AI13
AISENSE
AISENSE
AIGND
AIGND
(4)NIELVIS的软件组成
NIELVIS提供了些自带的虚拟仪器,包括:
DigitalMultimeter(数字万用表),Oscilloscope(示波器),FunctionGenerator(函数发生器),VariablePowerSupplies(可调电压源),BodeAnalyzer(波特分析仪),DynamicSignalAnalyzer(动态信号分析仪),ArbitraryWaveformGenerator(任意波发生器),DigitalReader,DigitalWriter,ImpedanceAnalyzer,Two-WireCurrent-VoltageAnalyzer和Three-WireCurrent-VoltageAnalyzer。
在LabVIEW8.0的后面版中选择MeasurementI/O>>NIELVIS可找到这些仪器的VI,同时NIELVIS还提供了四个仪器DigitalI/O(DIO),DigitalMultimeter(DMM),FunctionGenerator(FGEN)和VariablePowerSupplies(VPS)的低级VI,
实验二利用DAQmx创建测量任务
2.1实验目的
1)掌握用DAQASSISTANT创建测量任务的方法。
2)掌握单通道采集系统、多通道采集系统、模拟输出系统的设计方法。
2.2预习要求
熟悉NIELVIS实验平台
2.3实验内容
1)DAQASSISTANT的介绍
(1)打开DAQASSISTANT的方式
·在MAX中,右击数据邻居(DataNeighborhood),选择新建(CreateNew),再在新建(CreateNew)窗口中,选择NI-DAQmx任务(NI-DAQmxTask),然后随向导的引导完成即可。
·可以直接从LabVIEW8.0的Daq-mxdataacquisition里面打开DAQ助手
·可以使用DAQmxTaskName控件来打开DAQ助手。
右击该控件,选择新任务(DAQ助手)【NewTask(DAQAssistant)】。
通过上述方法,即可打开DAQ助手。
(2)如何创建新任务
1.选择I/O类型,比如模拟输入。
2.选择要执行的测量或信号发生。
3.选择要用的传感器,若可用的话。
4.选择要加到该任务中的通道,如dev1/ai1。
按住ctrl键可以在通道列表中间隔选择。
5.按finish按钮打开数据采集助手的设置面板
在数据采集助手的设置面板对输入范围、信号连接方式、标度、采样数、定时和触发等进行设置,然后保存任务,单击test按钮打开测试面板进行任务测试。
(3)如何生成图形代码
在max中使用数据采集助手可以进行任务配置,但是还没有在程序中得到测试的数据,同时也需要对数据采集进行更多的控制。
这些都需要生成图形代码。
使用DAQASSISTANT,在LabVIEW8.0中有如下3种方式可为任务产生代码:
·example:
产生任务运行需要的所有代码。
·configuration:
产生通道和任务配置的所有代码。
·exampleandconfiguration:
为任务或通道同时产生例程代码和配置代码。
可通过下面步骤产生代码并运行该测量任务:
1.点击前面板的DAQmxTaskName控件,从browse的下拉列表中选择一个已配置好的任务或打开新建向导创建一个任务。
2.在右键菜单中选择generatecode里的exampleandconfiguration,在原理图中就产生了任务所需的所有代码。
(但一般还需做少量修改)
3.保存该代码并运行程序看是否符合测量要求。
4.编辑该代码就可完成些复杂的测量任务。
2)测量系统设计
(1)单通道采集系统设计:
设计一个能采集正弦波的系统。
实验步骤:
在MAX中,右击数据邻居(DataNeighborhood),选择新建(CreateNew),再在新建(CreateNew)窗口中,选择NI-DAQmx任务(NI-DAQmxTask),在向导中选alaloginput下的voltage,然后选dev1下的ai0,输入名称,例如MyVoltageTask0,最后finish,就创建了一个任务。
接着在出现数据的采集助手设置面板的acquisitionmode里选continuous(连续采样),把平台前面板上functiongenerator的manual开关向上拨,量程调到50hz,幅度别调太大,参考表1.2在万用板上把ai0和func-out信号连上ach0-和ground连上,按下设置面板的test按钮,看是否出现正弦波,行的话就保存。
打开labview,在前面板添加一个DAQmxTaskName控件,从它的下拉列表中选择一个已配置好的任务如MyVoltageTask0,在右键菜单中选择generatecode里的exampleandconfiguration,在原理图中就产生了任务所需的所有代码。
去掉while循环上的两个register(寄存器),把断线连上。
点击第一个vi,按下ctrl键+h键,会出现它的信息,有名字,各管脚名字等,可以得知它叫untitled,把untitled也删掉。
DAQmxRead的多态选择analog->singlechannel->multiplesamples->waveform。
在原理图上加入DAQmxCreateVirtualChannelvi,多态选择alaloginput下的voltage,根据它的信息设置最小量程(minimumvalue)为-10,最大量程(miximumvalue)为10,物理通道(physicalchannels)为ai0.。
在原理图上加入DAQmxtimingvi,多态选sampleclock,根据它的信息设置rate为1000,samplemode为continuoussamples,最后DAQmxCreateVirtualChannelvi连上DAQmxtimingvi,DAQmxtimingvi连上DAQmxstarttaskvi。
运行后在前面板应该能看到采集的正弦波。
(2)多通道采集系统设计:
设计一个二路采集系统,通道可选择。
(选做)
可以在单通道采集系统的基础上进行修改,DAQmxRead的多态选择支持多通道的方式,物理通道的设置具体参见LabVIEW中关于DAQmxCreateVirtualChannel的physicalchannels的帮助。
(3)模拟输出系统设计
·有限数据输出:
设计出一个可调电压源,范围-5v到+5v。
实验提示:
理解设计单通道采集系统设计的方法,按照其方法进行设计,在max中创建一个模拟输出电压测量任务,设置面板的acquisitionmode里选nsamples,用DAQmxCreateVirtualChannelvi创建一个模拟输出电压的通道,多态选择alalogoutput。
在DAQmxwritevi的date端添加一个直流电压信号,可不用DAQmxtimingvi。
·连续波形数据输出:
用SineWaveformvi设计出一个正弦信号发生器。
实验提示:
按照设计单通道采集系统设计的方法进行设计,需用到DAQmxtimingvi,多态设置为usewaveform,SineWaveformvi的输出端连到DAQmxtimingvi的waveform端和DAQmxwrite控件的date端(前提是类型一致)。
实验三虚拟函数发生器的设计和虚拟示波器的使用
3.1实验目的
1)了解并掌握如何使用虚拟仪器完成信号分析
2)了解DAQ的使用方法
3)掌握创建子VI的方法
3.2预习要求
1)掌握一般函数发生器和示波器的使用方法
2)了解采样定理,频率混叠现象产生的原因和处理方法。
3.3实验内容
1)利用LabVIEW设计一简易虚拟函数发生器。
该函数发生器具有普通函数发生器的基本功能:
能够产生正弦波、方波和三角波。
信号的幅度、频率、初始相位、直流偏移量、占空比(只对方波)可调。
设计完虚拟函数发生器之后,利用DAQ和NIELVIS设备,并通过示波器观察信号波形,记录相关数据进行比较,分析采样频率和采样点数对信号的影响。
2)使用NIELVIS提供虚拟示波器观察信号函数波形。
使用NIELVIS实验平台上提供的函数发生器产生信号波形,通过DAQ采集数据,利用虚拟示波器观察波形记录数据进行比较。
3)创建自行设计的虚拟函数发生器为一子VI,可用于其他VI。
方法是鼠标右键点击窗口右上的图标,修改其中的Editicon和Showconnector两个属性。
4)选做:
完成上述内容后可利用LabVIEW提供的自相关计算模块完成函数发生器输出波形的自相关计算,显示计算结果和相关波形。
3.4实验提示
1)参考前面板设计如图3.1所示。
添加采样频率和采样点数的控件,用于观察采样频率和采样点数对信号的影响。
图中右上图标处用于创建子VI。
部分实验程序框图如图3.2所示。
这里需要强调说明的实验本身目的并不仅仅是去完成一个函数发生器的设计,而是通过设计了解LabVIEW的编程方法和信号分析。
事实上,在LabVIEW中已经存在一个功能完善的基本函数发生器模块(位于Signalprocessing/WaveformGeneration中,如图3.3所示),在ExpressVI中也存在一个功能完善的函数发生器。
图3.3所示的模块其实也是利用LabVIEW中最基本的波形发生模块完成的,可以双击该模块看到该模块的程序框图,如图3.4所示。
可以注意到本次设计的程序框图3.2是图3.4的简化。
LabVIEW提供的基本函数发生器模块综合考虑了多种情况,设计较为复杂,而本次要求设计的一个简易函数发生器目的是让同学们了解LabVIEW编程中的一些基本方法,比如case结构的使用方法,LabVIEW中位于Signalprocessing/SignalGeneration下的正弦波、方波和三角波产生模块的使用,以及LabVIEW的图像显示方法;并掌握如何利用DAQmx将设计的虚拟函数发生器产生实际输出的模拟信号(此部分要结合实验二)。
此外,其实本次设计要求利用的LabVIEW中位于Signalprocessing/SignalGeneration下的正弦波、方波和三角波产生模块也是一个子VI(相当与文本语言中的函数),双击也可查看其程序框图,如图3.5所示。
该程序框图不可更改,本身是通过调用C语言编写的DLL实现。
图3.1实验三前面板参考设计
图3.2部分实验程序框图
图3.3基本函数发生器
图3.4基本函数发生器程序框图
图3.5子VI程序框图举例
2)LabVIEW提供了各种信号发生子VI,LabVIEW8版本中位于Signalprocessing/SignalGeneration下。
以正弦波产生模块为例,该模块提供5个输入端,如图3.6所示。
这里涉及采样定理的运用,此外还需说明的是在LabVIEW中模拟信号频率是用赫兹或周期数/秒为单位,数字系统通常使用标准频率,所谓标准频率就是信号频率和采样频率的比值,单位是周期数/采样率,所以在仿真时对频率需要采取一定措施,这点非常重要,会对显示波形的周期产生直接影响。
图3.6正弦波模块
3)有关波形显示的说明。
SineWave模块本身输出的数组数据,只包含了采样值的信息,但不包括原信号的频率、采样时间(采样频率),采样起止时刻,而要完整的显示一个波形又需要这些信息。
所以在LabVIEW中专门提供了一种新的数据类型,即波形数据。
波形数据本身可以算是一种特殊的簇(簇也是LabVIEW中特有的一种数据类型,但类似C语言中的Structure),是将采样起始时刻(时间数据)、采样时间和波形的采样值(数组数据)整合为一组数据。
图3.2所示的程序框图中有三组输出数据,其中最上面紫红色的是用簇的形式显示的,中间则是SineWave模块的输出数组数据,最下面棕色的则是利用波形数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟仪器 设计 技术 实践 教程 Version113April2