您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > labview数据采集实例
2019/10/29LabVIEW数据采集实例肖俊生2013.04.202019/10/29内容与安排DAQ助手DAQmx函数和模拟量采集DAQmx模拟量生成DAQmx数字量采集DAQmx数字量生成DAQmx计数器2019/10/29DAQ助手做什么采集2019/10/29选择用于测量的通道2019/10/29测量参数对话框采集范围关系式Y=1000X共需要采集的样本数采集卡将会以每秒钟1000次的速度进行采样,在0.1秒后完成100次采集自动停止差分方式2019/10/29比如说采集一段-5V到+5V的正弦波,同样是3位的分辨率,选择±10V的量程需要将20V的范围平均分割成8份,而±5V的量程只需要在10V的范围内分割8份,这样码宽就会减小一半,精度自然相应提高2019/10/29接线方式2019/10/29内部时钟分频给出从外部引入时钟到采集卡一种保护机制,当采集卡在指定时间没有得到采样相应,程序就会报错停止,避免了死机等恶劣情况的出现2019/10/292019/10/292019/10/292019/10/292019/10/29点击Run,我们可以采集到当前的5V信号一旦程序开始后就立刻进入到了采集,然而在实际的应用中,往往需要一个触发信号控制何时进行采集2019/10/29触发采集触发按照类型主要分为:StartTrigger、ReferenceTrigger和PauseTrigger2019/10/29ReferenceTrigger是有限点采集中的一种触发一旦得到触发信号,采集卡继续采集N个样本,N=有限点采集总样本-需要触发前的样本数,再将缓存区的数据全部读出2019/10/29PauseTrigger指可以通过触发方式决定什么时候采集,什么时候不采集2019/10/292019/10/29当采集卡得到一个从低于2.7V上升到2.7V的模拟触发信号,即开始任务旋转机械、扭矩测试、瞬态测试等触发之后立刻又跳回触发值以外2019/10/29增加了迟滞的设置。同样是2.7V触发,斜率设为上升,这时设置1个1V的迟滞2019/10/292019/10/29DAQ助手配置完成后,点击右下角的“OK”键,即可自动在LabVIEW中生成代码,我们可以在前面板放置一个WaveformChart,将采集的结果实时显示出来2019/10/29模拟量采集形式描述单点采集采集设备从一个或多个输入通道分别获取一个信号值,然后LabVIEW立即返回这个值,这是一个即时、无缓冲的操作。效率和灵活性低。波形采集在计算机内存中开辟一段缓冲区,设备将采集的数据存入其中,当指定的数据采集完成后,LabVIEW再将缓冲区中的数据一次读出,此时输出的是一段有限长度的信号波形。连续采集开辟一段循环缓冲区,设备连续采集数据并将数据向缓冲区中存放的同时,LabVIEW依据设置,将缓存中的数据一段一段地读取出来。最常用的采集方式。2019/10/29有限点采集(Finite)和连续采集(Continuous)总线(如PCI/USB)RAMADE(Application)MemoryPC缓存输入速率数据板载FIFO转移速率ASICLabVIEW•PC缓存必须够大(至少需超过一次传递的数据量)•连续采集中,如果要使两处缓存一直不溢出,必须保证总线的数据转移速率大于数据的输入速率,同时程序必须尽快读取PC缓存中的数据2019/10/29连续模拟输入采到缓冲区中的数据(AIStart)数据结束端当前读取标志LabVIEW从缓冲区中读取的数据(AIRead)数据结束端数据结束端数据结束端当前读取标志当前读取标志2019/10/29连续采集时可能的数据传输异常RAMPCBufferADE(Application)Memory输入速率DATA板载FIFO总线传输速率ASIC板载内存Overflow解决办法:1.提高总线带宽2.选择板载FIFO较大的板卡3.降低采样速率(如果允许)PC内存Overwrite解决办法:1.增加程序循环读取速度(不要在采集循环里放太多处理工作)2.选用更快的CPU3.增大PCRAM,并通过编程指定更大的Buffer4.降低采样速率(如果允许)2019/10/29连续模拟输入需要注意,程序读取数据的速度要不慢于设备往缓冲区中存放数据的速度,这样才能保证连续运行时,缓冲区中的数据不会溢出。可以通过调节以下3个参数来达到上述要求:buffersize(缓存的大小)scanrate(采样速率)numberofscanstoreadatatime(每次读取的样本数)连续采集的程序模型为:AIConfigAIStartAIReadDataProcessAIClear循环2019/10/29DAQmx模拟量采集Dev1/ai0:4Dev1/ai1,Dev1/ai3,Dev1/ai5,Dev1/ai7自定义换算DAQmxCreateVirtualChannel.vi2019/10/29开辟的缓存区大小DAQmxTiming.vi2019/10/29DAQmxTrigger.vi2019/10/29DAQmxRead.vi每次读取多少样本每次读取的样本数(NumberofSamplesperChannel引脚的值)×每秒钟While循环运行的次数(While循环中设置延时的倒数)=每秒钟采集的样本数(采样率)。Windows的操作系统10到20次/秒2019/10/29DAQmxWrite.vi2019/10/292019/10/29错误线连接AIConfigAIStartAIReadDataProcessAIClear循环2019/10/29属性节点改变采样率2019/10/29通道切换时间2019/10/292019/10/29DAQmx模拟量生成2019/10/292019/10/29带缓冲的波形生成生成波形频率取决于下列三个因素更新率(每秒多少个更新点)缓冲区中的数据点缓冲区中的周期数信号频率=更新率缓冲区中的数据点缓冲区中的周期数×缓冲区大小=1000点缓冲区中的周期数=2更新率=1000点/秒则,信号频率=2Hz2019/10/29DAQmxWrite.vi2019/10/29输出单个电平,直流电压2019/10/29先在内存中开辟一个缓存区,将波形载入生成N点波形生成一个周期的正弦波通过设置多少样本描绘一个波形周期和采集卡的更新率决定实际输出波形的频率2019/10/29生成连续波形波形生成凼数2019/10/29频率为100Hz,幅值为5V的正弦波,ExpressVI的定时为每秒钟生成10000个点,所以每个波形周期由100个样本所表示2019/10/29程序会自动根据波形中的t0和dt信息设定采集卡合适的更新率,向外输出波形DAQmxIsTaskDone.vi,当任务结束戒点击“stop”按键时任务结束,停止生成波形写入缓冲区一个正弦波周期,程序开始以后再也没有继续输入过波形信号2019/10/29BasicFunctionGenerator.vi“Fs”代表使用该VI每秒钟生成的点数频率设定为10,则“Fs”至少大于20,设置为1000时每个周期由100个点描绘“#s”代表总共需要该VI输出多少个样本如果需要収送一个完整的波形,至少应该是“Fs”除以频率之商的整数倍2019/10/292019/10/29波形发生器DAQmxWrite.vi都放置在DAQmxStart.vi之前波形每个周期由100个样本描绘因为生成的波形频率是可变的,所以还需要实时地改变采集卡的更新率2019/10/292019/10/29每当改变波形信息时,示波器读到的数据就杂乱无章起来在设置成不允许重生成模式时,需要不断给入波形数据,否则会导致没有数据输出引起的超时报错,所以DAQmxStartTask.vi之后必须丌停刷新DAQmxWrite.vi。2019/10/292019/10/29第六部分2019/10/29虚拟信号发生器2019/10/29虚拟信号发生器程序框图2019/10/29虚拟示波器2019/10/29虚拟示波器部分程序框图2019/10/29光纤定位单元的驱动电路检测系统2019/10/29光纤定位单元的驱动电路检测系统2019/10/29
本文标题:labview数据采集实例
链接地址:https://www.777doc.com/doc-1747448 .html