东南大学虚拟仪器实验2报告

 

 

《虚拟仪器技术》

实验二

 利用DAQmx创建测量任务

              

学生姓名             

                 

      2014.4      

一、         实验项目名称

利用DAQmx创建测量任务

二、         预习要求

熟悉NI ELVIS 实验平台

三、         实验目的

1)掌握用DAQ ASSISTANT 创建测量任务的方法。

2)掌握单通道采集系统、多通道采集系统、模拟输出系统的设计方法。

四、         实验内容及要求

1)DAQ ASSISTANT 的介绍

(1)打开DAQ ASSISTANT 的方式

·在MAX 中,右击数据邻居(Data Neighborhood),选择新建(Create New),再在新建(Create New)窗口中,选择 NI-DAQmx 任务(NI-DAQmx Task),然后随向导的引导完成即可。

·可以直接从LabVIEW8.0 的Daq-mx data acquisition 里面打开DAQ 助手

·可以使用DAQmx Task Name 控件来打开DAQ 助手。右击该控件,选择新任务(DAQ助手)【New Task(DAQ Assistant)】。通过上述方法,即可打开DAQ 助手。

(2)如何创建新任务

1.选择I/O 类型,比如模拟输入。

2.选择要执行的测量或信号发生。

3.选择要用的传感器,若可用的话。

4.选择要加到该任务中的通道,如dev1/ai1。按住ctrl 键可以在通道列表中间隔选择。

5.按finish 按钮打开数据采集助手的设置面板,在数据采集助手的设置面板对输入范围、信号连接方式、标度、采样数、定时和触发等进行设置,然后保存任务,单击test 按钮打开测试面板进行任务测试。

(3)如何生成图形代码

在 max 中使用数据采集助手可以进行任务配置,但是还没有在程序中得到测试的数据,

同时也需要对数据采集进行更多的控制。这些都需要生成图形代码。

使用DAQ ASSISTANT,在LabVIEW8.0 中有如下3 种方式可为任务产生代码:

·example:产生任务运行需要的所有代码。

·configuration:产生通道和任务配置的所有代码。

·example and configuration:为任务或通道同时产生例程代码和配置代码。

可通过下面步骤产生代码并运行该测量任务:

1.点击前面板的DAQmx Task Name 控件,从browse 的下拉列表中选择一个已配置好的任务或打开新建向导创建一个任务。

2.在右键菜单中选择generate code 里的example and configuration,在原理图中就产生了任务所需的所有代码。(但一般还需做少量修改)

3.保存该代码并运行程序看是否符合测量要求。

4.编辑该代码就可完成些复杂的测量任务。

五、         实验步骤

(1)单通道采集系统设计:设计一个能采集正弦波的系统。

实验步骤:

在MAX 中,右击数据邻居(Data Neighborhood),选择新建(Create New),再在新建(Create New)窗口中,选择 NI-DAQmx 任务(NI-DAQmx Task),在向导中选alalog input下的voltage,然后选dev1 下的ai0,输入名称,例如MyVoltageTask0,最后finish,就创建了一个任务。接着在出现数据的采集助手设置面板的acquisition mode 里选continuous(连续采样),把平台前面板上function generator 的manual 开关向上拨,量程调到50hz,幅度别调太大,参考表1.2 在万用板上把ai0 和func-out 信号连上ach0-和ground 连上,按下设置面板的test 按钮,看是否出现正弦波,行的话就保存。

打开labview,在前面板添加一个DAQmx Task Name 控件,从它的下拉列表中选择一个

已配置好的任务如MyVoltageTask0,在右键菜单中选择generate code 里的example and

configuration,在原理图中就产生了任务所需的所有代码。去掉while 循环上的两个register(寄存器),把断线连上。点击第一个vi,按下ctrl键+h 键,会出现它的信息,有名字,各管脚名字等,可以得知它叫untitled,把 untitled也删掉。DAQmx Read 的多态选择analog->single channel->multiple samples->waveform。在原理图上加入DAQmx Create Virtual Channel vi,多态选择alalog input 下的voltage,根据它的信息设置最小量程(minimum value)为-10,最大量程(miximum value)为10,物理通道(physical channels)为ai0.。在原理图上加入DAQmx timing vi,多态选sampleclock,根据它的信息设置rate 为1000,sample mode 为continuous samples,最后DAQmxCreate Virtual Channel vi 连上DAQmx timing vi,DAQmx timing vi 连上DAQmx start task vi。运行后在前面板应该能看到采集的正弦波。

(3)模拟输出系统设计

·有限数据输出:设计出一个可调电压源,范围-5v 到+5v。

实验提示:

理解设计单通道采集系统设计的方法,按照其方法进行设计,在max 中创建一个模拟输出电压测量任务,在向导中选analog output 下的voltage, 物理通道选dev1 下的ai0,设置面板的acquisition mode 里选n samples。打开labview,在前面板添加一个DAQmx Task Name 控件,从它的下拉列表中选择刚才配置好的模拟输出电压的任务,再在右键菜单中选择generate code 里的example and configuration,从而产生任务所需的所有代码。在程序框图窗口把DAQmx wait until done vi 去掉,用DAQmx Create Virtual Channel vi 创建一个模拟输出电压的通道,多态选择analog output。在DAQmx write vi 的date 端添加一个直流电压信号,其多态选择为analog->single channel->single samples->DBL,可不用DAQmx timing vi,最后DAQmx Create Virtual Channel vi 连上DAQmx write vi,DAQmx

write vi 连上DAQmx start vi。用导线把DAC0 连到ch a+,ground 连到ch a-,打开NI ELVIS

中的oscilloscope,用虚拟示波器测试结果。

的oscilloscope,用虚拟示波器测试结果。

·连续波形数据输出:用Sine Waveform vi 设计出一个正弦信号发生器。

实验提示:

按照设计单通道采集系统设计的方法进行设计,创建一个模拟输出电压测量任务,产生其任

务所需的代码,在后面板上把sub generate WDT data vi 替换成sine waveform vi,programming->waveform->Analog waveform->waveform generation-> Sine Waveform 。 添

加DAQmx timing vi,多态设置为use waveform,sample mode 为continuous samples。Sine

Waveform vi 的输出端连到DAQmx timing vi 的waveform 端和DAQmx write 控件的date 端

(前提是类型一致),DAQmx write vi 多态选择为analog->single channel->multiplesamples->waveform。用导线把DAC0 连到ch a+,ground 连到ch a-,打开NI ELVIS 中的oscilloscope,用虚拟示波器测试结果

六、         实验结果

(1)单通道采集系统设计:设计一个能采集正弦波的系统。

在myDAQ任务中新建一个模拟电压输入任务,运行后并保存

按照实验步骤操作,在labview中完成程序并运行检验。

(3)有限数据输出:设计出一个可调电压源,范围-5v 到+5v。

在myDAQ任务中新建一个模拟电压输出任务,运行后保存。

按照实验步骤,在labview中完成程序。并打开NI ELVIS 中的oscilloscope,用虚拟示波器测试结果。

连续波形数据输出:用Sine Waveform vi 设计出一个正弦信号发生器。

在myDAQ任务中新建一个模拟电压输出任务,运行后保存。

按照实验步骤,在labview中完成程序。并打开NI ELVIS 中的oscilloscope,用虚拟示波器测试结果。

七、         总结及心得体会

在实验中我学会利用DAQmx创建测量任务,并通过labview对此任务进行编辑,学会了使用generate code 里的example andconfiguration,在原理图中产生任务所需的所有代码。

 

第二篇:东南大学虚拟仪器实验4 报告

 

《虚拟仪器技术》

      

 虚拟电压表的设计和虚拟数字万用表的使用

              

学生姓名           

              

同组人员           

      2014.5.14        

一、         实验项目名称

虚拟电压表的设计和虚拟数字万用表的使用

二、         预习要求

1)掌握一般电压表和万用表的工作原理和使用方法。

2)掌握交流电各种电压值表示的概念以及相互转换关系。

3)子VI 的创建方法

三、         实验目的

1)掌握虚拟电压表和数字万用表的设计和使用方法

2)进一步掌握LabVIEW 的使用,特别是控件属性的操作以及子VI 的使用。

四、         实验内容及要求

1)利用LabVIEW 设计一简易虚拟电压表。

功能要求:具有普通电压表的基本功能,用户可选择直流测量和交流测量。对于直流电

压只需显示电流值大小,对于交流电则需要显示该交流电的峰值、有效值、平均值和直    流分量(若存在)。同时能够提供虚拟输入和实际输入两种测量信号,虚拟输入时能够    显示信号波形。

其他要求:对虚拟电压表进行初始设置,即每次运行程序时电压表的初始界面一致,具

体表现在开关处于关闭状态,波形图窗口清空,其他控件处于使能状态下。实际输入时    禁用仿真参数设置控件,仿真输入时测量直流电压值时禁用信号幅度、频率、初始相位、  占  空比、信号类型等控件。

2)创建自行设计的虚拟电压表子VI。

3)使用NI ELVIS 提供的数字万用表(DMM)模块完成电阻、电流和电压的测量,并

就其中的电压测量部分与自行设计的虚拟电压表进行比较和分析。

五、         实验步骤

(1)主面板的编辑

根据实践教程中的实验提示以及根据主面板和总程序框图在空白的VI中进行编辑.

并在其中使用实验3中所做的VI作为子VI来完成波形发生的功能.

(2)本次实验的程序框图中使用了LabVIEW 中特有的一种顺序结构,这主要是缘于LabVIEW 采用了多线程并行的运行机制,程序内的代码是同时运行的。所以对于控件的初始显示可采用平铺式顺序结构的方法,在第一帧中设置各个控件的初始设置。初始化设置是通过控件的属性控制以及常量和局部变量设置完成的。LabVIEW 在执行程序时先从左边的帧开始,依次执行右面帧内的程序(本次只有两个帧,帧内的程序还是同时执行的)。左边帧内完成程序初始化设置,左边一列是控件的使能控制,0 是启用,1 是禁用,2 是禁用且变灰。这是通过控件的属性节点完成的,而右边一列则是对变量数值的初始设置,用局部变量完成。

(3)虚拟输入信号的提供可采用实验三中自行设计的虚拟函数发生器。有关子VI 的创建方法已介绍,本次实验主要是使用实验三中创建的子VI,在程序框图中的函数面板中选择VI 添加创建的子VI。自行创建的子VI 和LabVIEW 提供的各种函数模块的使用方法相同。关于子VI 属性的设置在主菜单中选择“文件/VI 属性”,进入VI 属性对话框,根据类别更改VI 属性。这里需要注意的是while 循环对子VI 的影响,建议在创建子VI 时去掉原先程序框图中用于使程序连续执行的while 循环,或用一布尔真常量控制while 循环的结束符(即

让此while 循环只循环一次)。此外,对于直流信号可以直接利用“初始化数组”模块完成。

(4)有关交流电压波形的参数,可以根据实践教程中参数的关系再利用信号的波峰值求取其他参数值。事实上,LabVIEW 提供用于计算这些参数的模块。对于波峰的求取,可使用波形最大最小值模块,位于“函数面板/编程/波形/模拟波形”下。有效值和直流分量可利用位于“函数面板/编程/波形/模拟波形/波形测量”下的基本平均直流-均方根模块实现。求取平均值的均值模块位于“函数面板/数学/概率与统计”中。

(5)首先,求取均值时需要将波形数组数据绝对值化,这是由交流信号的平均值定义决定,如果不取绝对值那平均值都为0,失去了实际意义。其次,提供的参考程序框图图4.3 中使用了“获得波形成分”模块,获取采集信号的波形数组数据、采样时间和采样起始时间,用于提取采集信号中一个完整周期。要提取出信号的至少一个完整周期的采样值的原因,是因为交流信号的有效值、平均值等都是以具备完整周期数的信号计算的,而实际采样时很难保证采样值为原信号的整周期倍数,如果直接使用采样值计算平均值和有效值将带来较大误差。因而,本次实验中在实际采样信号时要得到原周期信号的完整信息或是对周期信号处理时,采集到的采样值至少要大于一个完整的周期(实际对于正弦波、三角波只要能够测量出波峰与波谷也能计算出原波形)。

六、         实验结果

(1)实验3子VI的创建

并在实验3主面板的右上角 将子VI的各个引脚都设定好,用以在实验4的程序中方便使用.

(2)实验4的主面板及程序框图

其中使用的子vi   ,均值、峰峰值和有效值的测量

(3)实验运行结果

七、         总结及心得体会

通过本次实验,我了解LabVIEW 中对子函数的调用及使用方法,LabVIEW 中有关属

性节点、局部变量的使用和有关用户界面设计的一些基本方法。

相关推荐