初学LabVIEW数据采集中常见的问题_第1页
初学LabVIEW数据采集中常见的问题_第2页
初学LabVIEW数据采集中常见的问题_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、初学数据采集中常见的问题经常在论坛上会碰到一些会员朋友发贴提问数据采集的问题,其中很大一部分是初学者刚接触数据采 集,对其中的一些基本概念还没有太多的了解,这里将这些问题集中一下,做个总结。由于个人接触的板卡以 NI的为主,这里的内容只针对NI的数据采集卡,不保证适用于其它公司的数据采集卡。1,数据采集的时候数据会不会丢失?这是最常见的一个问题,刚开始学数据采集的时候都会在考虑,如果软件上读取数据的循环运行得不够快时,比如 100K采样率的时候,软件上循环肯定没这么快,数据是不是就丢失了?首先我们要清楚的是,数据采集功能是由数据采集卡来完成的,软件只是将采集到的数据接收到电脑上面过来,数据采集

2、卡有自身的办法来解决硬件采集速度快过于软件读取速度的问题。这需要对数据采集过程中数据的传输作一个介绍:外部的信号进入数据采集卡后,经过各种处理转换,先进入数据采集卡自身的缓冲区里面,缓冲区是先进先岀(FIFO, First InFirst Out)的,NI的数据采集卡应该是都有板载的缓冲区,区别在于缓冲区的大小而己。然后当板载缓冲区中 的数据量到了一定的条件时,数据采集卡将缓冲区的数据上传到计算机内存中,一般是以DMA(直接内存访 问)方式传入的,但也可以设置为其它方式,比如中断等。上传数据的方式和时机可以通过DAQmX勺属性节 点进行设置或查看,DAQmX中默认是使用DMA专输方式,传输条件

3、是板载内存非空。以下蓝色部分摘自NI网站:数据传输方式包括直接内存访问(DMA),中断请求(IRQ)和可编程I/O。DMA是一种DAQ板卡和PC内存间直接通讯的传输方式,不再需要处理器的干预。NI ?呉居芯片可以处理与PCI总线间的所有总线协议。IRQ传输方式会置高信号并中断处理器,然后由处理器处理数据传输。IRQ传输通常很低,只有150 kb/s,而DMA可以高达20 Mb/s。IRQ传输速率与使用的系统设 备相关,如处理 器速度等。絢5anfiFfir曲占C稳挣紂护耳窃云虫H J M(5 丸4期叫-1- 1 c:mi i -f iwr .沖侖萨护卜 1 律期 1; riniriT mHr也

4、tn 止工口加r “由亍b启8J凹aTUEi TRJULS档dklfi如此:7回弄如*由芥. 5L J 冷龙-r-K-filcqi,H M II 奁 Y图1设置模拟输入数据传递方式与时机数据到了内存后,再由程序中的DAQm衣ead.vi从内存中读入到计算机中去。这里计算机的内存要和板载缓冲区区分开来,板载缓冲区是厂商固定死的,改变不了,不会岀现溢岀但计算机中为数据采集开辟的内存建议是采以下,1Kbit比如它的空间可以很小,的情况,样率的10左右,即是说即使DAQm衣ead.vi在10秒钟都没有执行一次的话,那么就会岀现内存 不足以存放 采集到的数据的问题,导致数据丢失,DAQm) Read.v

5、i会报错。内存中的大小可以在DAQmx Timing (Sample Clock).vi 的每通道采样 输入端进行设置,参考下图中DAQmX帮助中的说明:这里个后才读进来并输出,那么就会等到够了 100如果缓冲区的数据不足100个,则1100个才 往后执 行,跟串口设置读取缓冲区字节数一样。设置为等待缓冲区的数据够不会出现等待的情况,有就读,没有就 返回空数组。所以,总结一下,为了保证数据不会失丢,要设置好内存缓冲区的大小,还要保证读 DAQmxRead.vi)循环得尽量快,每一次读取的数据尽量多。取缓冲区的 程序(数据采集的时间问题2,的数据在NI数据采集中时间相关的问题主要是二方面,一个是

6、每一个数据点的 时间,就是开始数据采集的初始时间,是任务开始时数据采来确定的,T0T0和dt采集中是通过采样率,比如1Kdt二个数据点之间间隔的时间,是采样率的倒数,集卡读取的计算机时间, 的时候要选择波形输出而不是选择Read.vi毫秒。在使用DAQmx 1/1000=0.001 dt就是秒9。DBL就只是有 数据而没有时间信息了。见图4DBL输岀,波形输岀就带有这些信息,而另一个就是采样率的设置问题,数据采集卡的采样脉冲一般是由它的内部时钟源进行得看时钟源是否能被整 数倍地分频到指定的采所以采样率是不是非常准确,分频后得到的,上的文章:样率,具体可以参考NI中采集的实际采样率确定NI-DA

7、Qmx硬件:Multifunction DAQ(MIO)问题:我设置采集的采样速率为500,001 Hz。我想知道我的设备所用的实际采样率。如果我在 LabVIEW中用NIDAQmx编成,如何确定实际采样率?解答:您可以用DAQm症时属性节点来获得此信息。 SamplClk.Timebase.Rate 属性提供了产生 实际采样率的时基频率 (timebase frequency)o大多数DAC设备有两个时基频率:20 MHz和100kHzo SampIClk.TimebaseDiv属性提供分频系数,用于从时基频率分频下来到您所希望的实际采样时钟频 率。所以当您设置您的采样速率为500,001

8、H乙 设备利用20 MHz时基和分频系数39来获得实际的采样速率20 MHz/39 = 512,820.51 Hz分频系数永远是一个整数,该整数的大小取决于您的数 据采集板卡的型号。举个例子:假设分频系数是一个16位的整数,这样20 MHz时基允许您使用的所有频率均大于305.18 H乙因为一个16位整数对应的最大分频系数为65,535100 kHz时基用于低于该频率的采样速率。进而,如果您指定的频率不能准确得到,驱动将采用最接近于您指 定的采样率且高于您所指定的采样率系列:E对.AI采样时钟分频系数 =24位AI转换时钟分频系数 =16位A0采样时钟分频系数 =24位对M系列:AI采样时钟分

9、频系数q J位AI转换时钟分频系数 =32位A0采样时钟分频系数 =32位另外,如果确实需要指定的采样率,也可以用外部的时钟源作为采样脉冲来进行数据采集。其实更深入一点的 话,在连续采集的应用程序中,数据采集时钟源的准确性问题就会显示岀来,假设时钟源的误差是50ppm (百万分之五十),即二万分之一,而一天有 86400秒,如果连续运行一天的话数据采集的时钟误差最多就会有4秒多,所以到了 24小时后就会岀现波形图上的时间与计算机时间差了大概4秒左右的现象,时间越长这个误差就可能越大,如果这个误差不能接受 的话就需要想其它办法解决。其中一个方法是换一个更高精度的时钟源,但长时间运行的话始终还是会

10、有误 差的,之前用过的方法是到了 0点的时候关闭任务再重新开启,让数据采集卡与计算机重新对时。3,其它一些问题A, 数据采集卡在多通道采集时只需要将创建任务时输入多个通道的名称即可,比如单通道时是使用“ Dev1/ai1 ”表示使用第一块数据采集卡的第二个模拟输入通道,“ Dev1/aiO:1 ”表示使用的是第一块数据采集卡的第1、2个模拟输入通道,那么在DAQmx Read.vi时就要选择它的多通道读恥然 后可以通过“索引数组”将波形数组分为第一通道波形和第二通道波形。如下图所示:图5数据采集例子但要注意的是同一个数据采集卡只能启用一个同类型的数据采集任务,比如不能创建二个模拟输入的任务,分别测量二个通道,只能是启用一个任务,但是同时读入二个通道的数据。但可以启动不同类型的任务,比如在数据采集时又进行数据输出等。需要注意的是多种任务同时运行时可能会导致DMA通道不够用,这时就需要将某些任务的数据传输方式设置为中断等其它方式了。B, 在同一个模拟输入采集的任务中,可以对不同的通道分别设置它们的输入范围和接线方式(单端接地、差分等等),但是不能设置

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论