1 / 19
文档名称:

LabView数据采集.pdf

格式:pdf   大小:1,800KB   页数:19页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

LabView数据采集.pdf

上传人:秋江孤影 2023/3/18 文件大小:1.76 MB

下载得到文件列表

LabView数据采集.pdf

文档介绍

文档介绍:该【LabView数据采集 】是由【秋江孤影】上传分享,文档一共【19】页,该文档可以免费在线阅读,需要了解更多关于【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,则可检
测到的电压变化。而当输入范围为-10到10伏(20伏),可检测的电
压变化量则为。
:.
采样率决定了模/数变换的速率。采样率高,则在一定时间内采样点就
多,对信号的数字表达就越精确。采样率必须保证一定的数值,如果太
低,则精确度就很差。下面的图表示了采样率对精度的影响。
根据耐奎斯特采样理论,你的采样频率必须是信号最高频率的两倍。例
如,音频信号的频率一般达到20KHz,因此其采样频率一般需要40KHz。
平均化。噪声将会引起输入信号畸变。噪声可以是计算机外部的或者内
部的。要抑制外部噪声误差,可以使用适当的信号调理电路,也可以增
加采样信号点数,再取这些信号的平均值以抑制噪声误差,这样误差可
以减小到乘以下面的系数:
例如,如果以100个点来平均,则噪声误差将减小1/10。
,
第二节数据采集VI程序的调用方法
:.
LabVIEW的DAQ程序包括模拟输入、模拟输出、计数器操作、或者数字
输入、输出等。你可以在框图程序窗口下选择DataAcquisition。再在
此子模板下,可以看到6个子模板:AnalogInput,AnalogOutput,
DigitalI/O,Counter,CalibrationandConfiguration和Signal
Conditioning。
在上述6个子模板下,每个子模板又分成EasyI/OVis,Intermediate
Vis,UtilityVis和AdvancedVis。下面我们以AnalogInput子模板
为例进行解释。如图所示,在其顶层是简单模拟量输入VI程序(Easy
AI),中间层是中级模拟量输入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伏到伏输出电压,再编制VI程
序进行单点模拟输入电压测量,验证上述输出电压。最后,再修改程序,
使之控制DemoBox上的LED指示灯。在演示盒DemoBox上,把模拟输
出CH0与模拟输入CH1相连。
:.
前面板:
,用Device指定DAQ卡设备
编号,Channel字符串指定模拟输出通道,用VoltageOutput输出显示
来显示当前输出电压值。

框图程序

|
对于循环ForLoop要求每500毫秒执行一次,控制输出电压以伏的间
隔从0伏到伏变化。当循环ForLoop结束后,输出电压又复位为0伏。
:.
,再打开前面板窗口,创建输入电压测量
Voltmeter程序,以显示输入电压值。
前面板:
框图程序:

,将其刻度定义为至。
:.
,上限控制HighLimit输入值,下限控
制LowLimit输入值,打开Power开关,运行该程序。
,将会弹出一个对话框,显示错误代码和解
释。要模拟出错情况,在Device控制栏中输入0并运行程序,则将会
显示出错情况。
:
,运行
电压输出VoltageOutputVI程序,则在电压测量Voltmeter程序中将
采集并显示电压值。
,并按上图虚线框住的部分修改程序,当输入电压大于
5伏时点亮LED灯。演示盒DemoBox上的LED灯是负逻辑,高电平时关
闭LED,低电平时打开LED。
:.
,以验证运行效
果。
(练****2-1结束)。
第四节波形的采集与产生
在许多应用场合,一次只采样一个数据点是不够的。另外,采样点之间
的间隔很难保持恒定,因为它取决于很多因素,如循环的执行速度,子
程序的调用时间等等。而使用AIAcquireWaveform和AOGenerate
Waveform程序,就可以以大于单点操作的速度进行多点的数据采集和波
形产生,并且用户可以自定义采样速率。
波形采集:
AIAcquireWaveform程序从一个指定的输入通道按用户定义的采样率
和采样点数采集数据并返回计算机。
上图中NumberofSamples是采样点数,Samplerate是采样率,以Hz
为单位。Waveform是模拟输入信号的一维采样数组,以伏特为单位。
:.
Actualsampleperiod是实际采样率的倒数,它可能与指定采样率有一
些小偏差,偏差取决于计算机硬件速度。
}
波形产生:
AOGenerateWaveform程序在一个模拟输出通道上以用户定义的更新速
率产生一个电压波形。Updaterate是每秒钟产生的电压数值更新点数。
Waveform是一个一维数组,它包含写到输出通道上的模拟电压值,以伏
为单位。
练****2-2
目的:采集并显示一个模拟信号波形。
学员将编写一个VI程序,它使用DAQ卡采集一个信号波形,并在图表
上显示。在本例中,把演示盒上的模拟输入CH1接到函数发生器的正弦
波输出端口上。
前面板:
,并照下图创建一个前面板程序。
:.
“采样数”控制栏定义采样点数,而“采样/秒”控制栏定义采样率。

/
框图程序:

,输入各控制栏数值,并运行程序。图表窗口将绘出
模拟信号波形。试用不同的采样率和采样点数,观察波形的差别。
(练****2-2结束)
:.
第五节扫描多个模拟输入通道
AIAcquireWaveforms程序从多个输入通道以指定的采样率采集指定的
采样点数,并将采样结果数据送回到计算机。Channels控制栏指定要采
样的多个通道的编号,各个通道号间以逗号隔开,例如1,2,4。控制
栏Numberofsamples/ch是每个通道要采集的采样点数。Scanrate
是每个通道每秒钟的采样点数即采样率。Waveform是一个二维数组,包
含模拟输入信号电压数值,以伏为单位。Actualscanperiod是实际采
样率的倒数,由于计算机硬件的不同,实际采样率与指定的采样率可能
有微小差异。
练****2-3
目的:使用简单I/O程序来执行扫描多个通道的数据采集工作。
学员将创建一个VI程序,它扫描两个不同通道的模拟信号波形,并将
它们分别在图表上绘出。在本例中,把DemoBox的模拟输入通道CH1
接到正弦波/三角波输出口,而模拟输入通道CH2接到方波输出口。
前面板:
>
,它有两个输入通道,可同时显示两个波形。
:.

框图程序:
,它调用了如下的功能模块:
AIAcquireWaveforms子程序(在DataAcquisition>AnalogInput
子模板)。在本例中,它在通道1和通道2以采样率10000Hz采样1000
个点。
:.
IndexArray子程序(在Array子模板),在本例中,把二维数组的第
0列定义为通道1的采集数据,第1列定义为通道2的采集数据。
WritetoSpreadsheetFile子程序(在FileI/O子模板)。在本例中,
把通道1和通道2的数据写入数据文件(spreadsheetfile)。
;模拟通道2与正弦
波发生器相连接。运行该程序,在图表上将显示输入的两个数据波形。
(练****2-3结束)。
:
第六节连续数据采集
连续数据采集,或者说实时数据采集,是在不中断数据采集过程的情况
下不断地向计算机返回采集数据。开始数据采集后,DAQ卡不断地采集
数据并将它们存贮在指定的缓冲区中(circularbuffer),然后LabVIEW
每隔一段时间将一批数据送入计算机进行处理。如果缓冲区放满了,DAQ
卡就会又重新从内存起始地址写入新数据,覆盖原来的数据。这个过程
一直持续,直到采集到了指定数目的数据点,或者LabVIEW主动中止了
采集过程,或者程序出现错误。这种工作方式对于需要把数据存入磁盘
或者观察实时数据很有用。
练****2-4
目的:调用中级功能模块程序执行连续数据采集工作。
:.
学员将验证一个连续数据采集程序,在本例中,把模拟输入通道CH1接
到正弦/三角波输出口。
前面板:

“缓冲大小”来指定,同时还
用“一次读入的扫描”来指定每次从内存读取的数据量,用“扫描剩余
数据”显示内存中尚未读取的采样数据个数。
框图程序:
:.
。它调用了下面的功能模块:
AIConfigure程序(在DataAcquisition>AnalogInput子模板)。设
置设备编号。通道号和数据缓冲区大小。
AIStart程序,用指定的采样率,以后台工作的方式开始连续数据采集
过程。
AIRead程序,在条件循环中连续采集指定数目的采样点,并返回数据
到计算机。
AIClear程序,停止数据采集,释放所有资源。
,观察结果。在本程序中,AIRead子程序的每次读取
的采样点数取决于设定值和内存中未读取的采样点数的比较结果,取它
们中的较大者。