1、单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,LabVIEW数据采集实例,肖俊生,2013.04.20,1,内容与安排,DAQ助手,DAQmx函数和模拟量采集,DAQmx模拟量生成,DAQmx数字量采集,DAQmx数字量生成,DAQmx计数器,2,DAQ助手,做什么采集,3,选择用于测量的通道,4,测量参数对话框,采集范围,关系式,Y=1000X,共需要采集的样本数,采集卡将会以每秒钟1000次的速度进行采样,,在0.1秒后完成100次采集自动停止,差分方式,5,比如说采集一段-5 V到+5 V的正弦波,,同样是3位的分辨率,,选择10 V的量程需
2、要将20 V的范围平均分割成8份,,而5 V的量程只需要在10 V的范围内分割8份,,这样码宽就会减小一半,精度自然相应提高,6,接线方式,7,内部时钟分频给出,从外部引入时钟到采集卡,一种保护机制,当采集卡在指定时间没有得到采样相应,,程序就会报错停止,避免了死机等恶劣情况的出现,8,9,10,11,12,点击Run,我们可以采集到当前的5V 信号,一旦程序开始后就立刻进入到了采集,,然而在实际的应用中,,往往需要一个触发信号控制何时进行采集,13,触发采集,触发按照类型主要分为:Start Trigger、Reference Trigger 和Pause Trigger,14,Refere
3、nce Trigger 是有限点采集中的一种触发,一旦得到触发信号,,采集卡继续采集N 个样本,,N=有限点采集总样本-需要触发前的样本数,,再将缓存区的数据全部读出,15,Pause Trigger 指可以通过触发方式决定什么时候采集,什么时候不采集,16,17,当采集卡得到一个从低于2.7V 上升到2.7V 的模拟触发信号,即开始任务,旋转机械、扭矩测试、瞬态测试等,触发之后立刻又跳回触发值以外,18,增加了迟滞的设置。同样是2.7V 触发,斜率设为上升,这时设置1 个1V 的迟滞,19,20,DAQ 助手配置完成后,点击右下角的“OK”键,,即可自动在LabVIEW 中生成代码,,我们可
4、以在前面板放置一个Waveform Chart,,将采集的结果实时显示出来,21,模拟量采集,形 式,描 述,单点采集,采集设备从一个或多个输入通道分别获取一个信号值,然后LabVIEW立即返回这个值,这是一个即时、无缓冲的操作。效率和灵活性低。,波形采集,在计算机内存中开辟一段缓冲区,设备将采集的数据存入其中,当指定的数据采集完成后,LabVIEW再将缓冲区中的数据一次读出,此时输出的是一段有限长度的信号波形。,连续采集,开辟一段循环缓冲区,设备连续采集数据并将数据向缓冲区中存放的同时,LabVIEW依据设置,将缓存中的数据一段一段地读取出来。最常用的采集方式。,22,有限点采集(Finit
5、e)和 连续采集(Continuous),总线(如 PCI/USB),RAM,ADE(Application),Memory,PC,缓存,输入速率,数据,板载 FIFO,转移速率,ASIC,LabVIEW,PC,缓存必须够大,(,至少需超过一次传递的数据量,),连续采集中,如果要使两处缓存一直不溢出,必须保证总线的数据转移速率大于数据的输入速率,同时程序必须尽快读取,PC,缓存中的数据,23,连续模拟输入,24,连续采集时可能的数据传输异常,RAM,PC,Buffer,ADE(Application),Memory,输入速率,DATA,板载 FIFO,总线传输速率,ASIC,板载内存Overf
6、low,解决办法:,提高总线带宽,选择板载,FIFO,较大的板卡,降低采样速率,(,如果允许,),PC内存Overwrite,解决办法:,增加程序循环读取速度,(,不要在采集循环里放太多处理工作,),选用更快的,CPU,增大,PC RAM,,并通过编程指定更大的,Buffer,降低采样速率,(,如果允许,),25,连续模拟输入,需要,注意,,程序读取数据的速度要不慢于设备往缓冲区中存放数据的速度,这样才能保证连续运行时,缓冲区中的数据不会溢出。可以通过调节以下3个参数来达到上述要求:,buffer size(缓存的大小),scan rate(采样速率),number of scans to r
7、ead at a time(每次读取的样本数),连续采集的程序模型为:,AI,Config,AI,Start,AI,Read,Data,Process,AI,Clear,循 环,26,DAQmx模拟量采集,Dev1/ai0:4,Dev1/ai1,Dev1/ai3,Dev1/ai5,Dev1/ai7,自定义换算,DAQmx Create Virtual Channel.vi,27,开辟的缓存区大小,DAQmx Timing.vi,28,DAQmx Trigger.vi,29,DAQmx Read.vi,每次读取多少样本,每次读取的样本数(Number of Samples per Channel
8、 引脚的值),每秒钟While 循环运行的次数(While 循环中设置延时的倒数),=每秒钟采集的样本数(采样率)。,Windows 的操作系统,10 到20 次/秒,30,DAQmx Write.vi,31,32,错误线连接,AI,Config,AI,Start,AI,Read,Data,Process,AI,Clear,循 环,33,属性节点,改变采样率,34,通道切换时间,35,36,DAQmx模拟量生成,37,38,带缓冲的波形生成,生成波形频率取决于下列三个因素,更新率(每秒多少个更新点),缓冲区中的数据点,缓冲区中的周期数,信号频率,更新率,缓冲区中的数据点,缓冲区中的周期数,缓冲
9、区大小 1000点,缓冲区中的周期数 2,更新率 1000 点/秒,则,信号频率 2 Hz,39,DAQmx Write.vi,40,输出单个电平,直流电压,41,先在内存中开辟一个缓存区,将波形载入,生成N点波形,生成一个周期的正弦波,通过设置多少样本描绘一个波形周期和采集卡的更新率决定实际输出波形的频率,42,生成连续波形,波形生成凼数,43,频率为100Hz,幅值为5V的正弦波,,Express VI的定时为每秒钟生成10000个点,,所以每个波形周期由100个样本所表示,44,程序会自动根据波形中的t0和dt信息设定采集卡合适的更新率,向外输出波形,DAQmx Is Task Done
10、vi,,当任务结束戒点击“stop”按键时任务结束,停止生成波形,写入缓冲区一个正弦波周期,程序开始以后再也没有继续输入过波形信号,45,Basic Function Generator.vi,“Fs”代表使用该VI每秒钟生成的点数,频率设定为10,则“Fs”至少大于20,设置为1000时每个周期由100个点描绘,“#s”代表总共需要该VI输出多少个样本,如果需要収送一个完整的波形,至少应该是“Fs”除以频率之商的整数倍,46,47,波形发生器,DAQmx Write.vi都放置在DAQmx Start.vi之前,波形每个周期由100个样本描绘,因为生成的波形频率是可变的,所以还需要实时地改变采集卡的更新率,48,49,每当改变波形信息时,示波器读到的数据就杂乱无章起来,在设置成不允许重生成模式时,需要不断给入波形数据,,否则会导致没有数据输出引起的超时报错,,所以DAQmx Start Task.vi之后必须丌停刷新DAQmx Write.vi。,50,51,第六部分,若干实例介绍,52,虚拟信号发生器,53,虚拟信号发生器程序框图,54,虚拟示波器,55,虚拟示波器部分程序框图,56,光纤定位单元的驱动电路检测系统,57,光纤定位单元的驱动电路检测系统,58,谢 谢,59,