LabView数据采集.docx

上传人:b****6 文档编号:3238909 上传时间:2022-11-20 格式:DOCX 页数:13 大小:453.03KB
下载 相关 举报
LabView数据采集.docx_第1页
第1页 / 共13页
LabView数据采集.docx_第2页
第2页 / 共13页
LabView数据采集.docx_第3页
第3页 / 共13页
LabView数据采集.docx_第4页
第4页 / 共13页
LabView数据采集.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

LabView数据采集.docx

《LabView数据采集.docx》由会员分享,可在线阅读,更多相关《LabView数据采集.docx(13页珍藏版)》请在冰豆网上搜索。

LabView数据采集.docx

LabView数据采集

第一节概述

LabVIEW的数据采集(DataAcquisition)程序库包括了许多NI公司数据采集(DAQ)卡的驱动控制程序。

通常,一块卡可以完成多种功能-模/数转换,数/模转换,数字量输入/输出,以及计数器/定时器操作等。

用户在使用之前必须DAQ卡的硬件进行配置。

这些控制程序用到了许多低层的DAQ驱动程序。

本课程需要一块安装好的DAQ卡以及LabVIEW开发系统。

数据采集系统的组成:

DAQ系统的基本任务是物理信号的产生或测量。

但是要使计算机系统能够测量物理信号,必须要使用传感器把物理信号转换成电信号(电压或者电流信号)。

有时不能把被测信号直接连接到DAQ卡,而必须使用信号调理辅助电路,先将信号进行一定的处理。

总之,数据采集是借助软件来控制整个DAQ系统–包括采集原始数据、分析数据、给出结果等。

上图中描述了插入式DAQ卡。

另一种方式是外接式DAQ系统。

这样,就不需要在计算机内部插槽中插入板卡,这时,计算机与DAQ系统之间的通讯可以采用各种不同的总线,如USB,并行口或者PCMCIA等完成。

这种结构适用于远程数据采集和控制系统。

模拟输入:

当采用DAQ卡测量模拟信号时,必须考虑下列因素:

输入模式(单端输入或者差分输入)、分辨率、输入范围、采样速率,精度和噪声等。

单端输入以一个共同接地点为参考点。

这种方式适用于输入信号为高电平(大于一伏),信号源与采集端之间的距离较短(小于15英尺),并且所有输入信号有一个公共接地端。

如果不能满足上述条件,则需要使用差分输入。

差分输入方式下,每个输入可以有不同的接地参考点。

并且,由于消除了共模噪声的误差,所以差分输入的精度较高。

输入范围是指ADC能够量化处理的最大、最小输入电压值。

DAQ卡提供了可选择的输入范围,它与分辨率、增益等配合,以获得最佳的测量精度。

分辨率是模/数转换所使用的数字位数。

分辩率越高,输入信号的细分程度就越高,能够识别的信号变化量就越小。

下图表示的是一个正弦波信号,以及用三位模/数转换所获得的数字结果。

三位模/数转换把输入范围细分为23或者就8份。

二进制数从000到111分别代表每一份。

显然,此时数字信号不能很好地表示原始信号,因为分辩率不够高,许多变化在模/数转换过程中丢失了。

然而,如果把分辩率增加为16位,模/数转换的细分数值就可以从8增加到216即65536,它就可以相当准确地表示原始信号。

增益表示输入信号被处理前放大或缩小的倍数。

给信号设置一个增益值,你就可以实际减小信号的输入范围,使模数转换能尽量地细分输入信号。

例如,当使用一个3位模数转换,输入信号范围为0到10伏,上面的图显示了给信号设置增益值的效果。

当增益=1时,模/数转换只能在5伏范围内细分成4份,而当增益=2时,就可以细分成8份,精度大大地提高了。

但是必须注意,此时实际允许的输入信号范围为0到5伏。

一但超过5伏,当乘以增益2以后,输入到模/数转换的数值就会大于允许值10伏。

总之,输入范围,分辩率以及增益决定了输入信号可识别的最小模拟变化量。

此最小模拟变化量对应于数字量的最小位上的0,1变化,通常叫做转换宽度(Codewidth)。

其算式为:

输入范围/(增益*2^分辩率)。

例如,一个12位的DAQ卡,输入范围为0到10伏,增益为1,则可检测到2.4mV的电压变化。

而当输入范围为-10到10伏(20伏),可检测的电压变化量则为4.8mV。

采样率决定了模/数变换的速率。

采样率高,则在一定时间内采样点就多,对信号的数字表达就越精确。

采样率必须保证一定的数值,如果太低,则精确度就很差。

下面的图表示了采样率对精度的影响。

根据耐奎斯特采样理论,你的采样频率必须是信号最高频率的两倍。

例如,音频信号的频率一般达到20KHz,因此其采样频率一般需要40KHz。

平均化。

噪声将会引起输入信号畸变。

噪声可以是计算机外部的或者内部的。

要抑制外部噪声误差,可以使用适当的信号调理电路,也可以增加采样信号点数,再取这些信号的平均值以抑制噪声误差,这样误差可以减小到乘以下面的系数:

例如,如果以100个点来平均,则噪声误差将减小1/10。

第二节数据采集VI程序的调用方法

LabVIEW的DAQ程序包括模拟输入、模拟输出、计数器操作、或者数字输入、输出等。

你可以在框图程序窗口下选择DataAcquisition。

再在此子模板下,可以看到6个子模板:

AnalogInput,AnalogOutput,DigitalI/O,Counter,CalibrationandConfiguration和SignalConditioning。

在上述6个子模板下,每个子模板又分成EasyI/OVis,IntermediateVis,UtilityVis和AdvancedVis。

下面我们以AnalogInput子模板为例进行解释。

如图所示,在其顶层是简单模拟量输入VI程序(EasyAI),中间层是中级模拟量输入VI程序(IntermediateAI),然后下面是两个图标,一个用于调用模拟输入应用程序(UtilityAI),一个调用高级模拟量输入程序(AdvancedAI)。

在本教材中,我们主要讲述简单和中级程序。

高级程序涉及到与DAQ驱动程序的低层接口,而通用应用程序是中级程序的组合。

简单I/O程序仅仅只是表面层接口程序,它能执行基本的模拟量输入、模拟量输出、数字I/O,以及计数器/定时器操作。

它简单易用,并且包含一个简单的出错处理方法。

当出错时,将弹出一个对话框,显示出错信息,而用户可以选择中止程序执行或者忽略错误。

相对于简单程序而言,中级程序具备更多的硬件设置功能,灵活性,并且可以更有效地开发实用程序。

它具有许多简单程序所缺乏的功能,如外部时钟等。

它对出错的处理也更加灵活,可以把出错状态信息传递给其它的程序,编程处理出错情况。

第三节模拟输入与输出

在DataAcquisition子模板下的AnalogInput子模板程序执行模/数转换操作。

而AnalogOutput程序库则执行数/模转换或多重转换。

AISampleChannel程序测量指定通道上信号的一个采样点,并返回测量值。

Device是DAQ卡的设备编号,Channel是描述模拟输入通道号的字符串,HighLimit和LowLimit指明输入信号的范围,缺省值为+10V和-10V。

AOUpdateChannel程序把一个给定电压值在一个模拟输出通道上输出。

Device是DAQ卡的设备编号,Channel是输出通道号字符串Voltage是输出的电压值。

在上述程序执行时,如果发生错误,则弹出一个对话框,显示错误代码,你可以选择中止程序或者继续程序执行。

练习2-1

目的:

输出一个模拟电压信号,并且用DAQ卡再次采集该信号。

首先编制一个VI程序,以0.5伏的间隔从0伏到9.5伏输出电压,再编制VI程序进行单点模拟输入电压测量,验证上述输出电压。

最后,再修改程序,使之控制DemoBox上的LED指示灯。

在演示盒DemoBox上,把模拟输出CH0与模拟输入CH1相连。

前面板:

1.打开电压输出VoltageOutput程序窗口,用Device指定DAQ卡设备编号,Channel字符串指定模拟输出通道,用VoltageOutput输出显示来显示当前输出电压值。

2.切换到框图程序。

框图程序

1.按照下图建立框图程序。

对于循环ForLoop要求每500毫秒执行一次,控制输出电压以0.5伏的间隔从0伏到9.5伏变化。

当循环ForLoop结束后,输出电压又复位为0伏。

2.关闭上述框图程序窗口,再打开前面板窗口,创建输入电压测量Voltmeter程序,以显示输入电压值。

前面板:

框图程序:

1.按照下图编写程序。

2.在前面板的电压测量仪表盘中,将其刻度定义为0.0至10.0。

3.在通道控制Channel输入值1,上限控制HighLimit输入值10.0,下限控制LowLimit输入值0.00,打开Power开关,运行该程序。

4.如果运行过程中出现错误,将会弹出一个对话框,显示错误代码和解释。

要模拟出错情况,在Device控制栏中输入0并运行程序,则将会显示出错情况。

5.确认已在演示盒DemoBox中将模拟输出CH0接到模拟输入CH1,运行电压输出VoltageOutputVI程序,则在电压测量Voltmeter程序中将采集并显示电压值。

6.停止程序运行,并按上图虚线框住的部分修改程序,当输入电压大于5伏时点亮LED灯。

演示盒DemoBox上的LED灯是负逻辑,高电平时关闭LED,低电平时打开LED。

7.再同时运行前面的电压输出程序和本电压输入程序,以验证运行效果。

(练习2-1结束)。

第四节波形的采集与产生

在许多应用场合,一次只采样一个数据点是不够的。

另外,采样点之间的间隔很难保持恒定,因为它取决于很多因素,如循环的执行速度,子程序的调用时间等等。

而使用AIAcquireWaveform和AOGenerateWaveform程序,就可以以大于单点操作的速度进行多点的数据采集和波形产生,并且用户可以自定义采样速率。

波形采集:

AIAcquireWaveform程序从一个指定的输入通道按用户定义的采样率和采样点数采集数据并返回计算机。

上图中NumberofSamples是采样点数,Samplerate是采样率,以Hz为单位。

Waveform是模拟输入信号的一维采样数组,以伏特为单位。

Actualsampleperiod是实际采样率的倒数,它可能与指定采样率有一些小偏差,偏差取决于计算机硬件速度。

波形产生:

AOGenerateWaveform程序在一个模拟输出通道上以用户定义的更新速率产生一个电压波形。

Updaterate是每秒钟产生的电压数值更新点数。

Waveform是一个一维数组,它包含写到输出通道上的模拟电压值,以伏为单位。

练习2-2

目的:

采集并显示一个模拟信号波形。

学员将编写一个VI程序,它使用DAQ卡采集一个信号波形,并在图表上显示。

在本例中,把演示盒上的模拟输入CH1接到函数发生器的正弦波输出端口上。

前面板:

1.打开一个新建前面板窗口,并照下图创建一个前面板程序。

“采样数”控制栏定义采样点数,而“采样/秒”控制栏定义采样率。

2.切换到框图程序。

框图程序:

1.按照上图创建框图程序。

2.返回前面板窗口,输入各控制栏数值,并运行程序。

图表窗口将绘出模拟信号波形。

试用不同的采样率和采样点数,观察波形的差别。

(练习2-2结束)

第五节扫描多个模拟输入通道

AIAcquireWaveforms程序从多个输入通道以指定的采样率采集指定的采样点数,并将采样结果数据送回到计算机。

Channels控制栏指定要采样的多个通道的编号,各个通道号间以逗号隔开,例如1,2,4。

控制栏Numberofsamples/ch是每个通道要采集的采样点数。

Scanrate是每个通道每秒钟的采样点数即采样率。

Waveform是一个二维数组,包含模拟输入信号电压数值,以伏为单位。

Actualscanperiod是实际采样率的倒数,由于计算机硬件的不同,实际采样率与指定的采样率可能有微小差异。

练习2-3

目的:

使用简单I/O程序来执行扫描多个通道的数据采集工作。

学员将创建一个VI程序,它扫描两个不同通道的模拟信号波形,并将它们分别在图表上绘出。

在本例中,把DemoBox的模拟输入通道CH1接到正弦波/三角波输出口,而模拟输入通道CH2接到方波输出口。

前面

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1