转:数采达人LabVIEW编程讲座——第四讲

标签:
labview数据采集杂谈 |
分类: Labview |
原文地址:http://daq.pansino.com.cn/Support/DownLoad_Content.aspx?D_Id=97&D_CategoryId=1
—————————————————————————————————————————————————
http://daq.pansino.com.cn/FCK/Files/image/%E6%95%B0%E9%87%87%E8%BE%BE%E4%BA%BALabVIEW%E7%BC%96%E7%A8%8B%E8%AE%B2%E5%BA%A7%E2%80%94%E2%80%94%E7%AC%AC%E5%9B%9B%E8%AE%B21.jpg
图1 DAQ 助手在LabVIEW 中自动生成代码
图1 DAQ 助手在LabVIEW 中自动生成代码
图4
DAQmx Create Virtual Channel.vi
非连续则使用“,”分隔。比如当我们用到通道0、1、2、3、4 采集,则在Physical
Channels 控件中写入“Dev1/ai0:4”,而用到通道1、3、5、7
时,则需要写“Dev1/ai1,Dev1/ai3,Dev1/ai5,Dev1/ai7”。在介绍DAQ 助手时已经讲过Input
Terminal Configuration、Maximum/minimum Value 和Units 的定义,在DAQmx
Create Virtual Channel.vi 中也有相应的接线端;Custom ScaleName 用于导入MAX
中创建的自定义换算,也可以直接新建。
DAQmx Timing.vi 用于设置采集任务的时钟,这里我们主要介绍其中
Sample Clock(Analog/Counter/Digital)的功能,其他功能后面的讲座中可能会涉及。首先,Sample Mode 接线端用来指定连续采集还是有限点采集,如果是连续采集,Samples per Channel 接线端用来指定开辟的缓存区大小,采集到的数据都会先存进这个缓存区,再被软件读取出来。设置合适的缓存区大小可以避免数据溢出,通常在连续采集时并不需要我们指定缓存区大小,使用默认值即可,如果发生溢出再做适当微调。如果选择有限点采样模式,Samples per Channel 接线端指定的则是我们需要采集的总点数。Rate 引脚用于设置采样率,即每秒采集的样本,如果不连接Source 和Active Edge 引脚,则使用板卡的内部时钟分频定时,否则需要连接外部时钟信号到板卡PFI 引脚,并指定利用上升
沿或下降沿响应(图5)。
http://daq.pansino.com.cn/FCK/Files/image/%E6%95%B0%E9%87%87%E8%BE%BE%E4%BA%BALabVIEW%E7%BC%96%E7%A8%8B%E8%AE%B2%E5%BA%A7%E2%80%94%E2%80%94%E7%AC%AC%E5%9B%9B%E8%AE%B25.jpg
Sample Clock(Analog/Counter/Digital)的功能,其他功能后面的讲座中可能会涉及。首先,Sample Mode 接线端用来指定连续采集还是有限点采集,如果是连续采集,Samples per Channel 接线端用来指定开辟的缓存区大小,采集到的数据都会先存进这个缓存区,再被软件读取出来。设置合适的缓存区大小可以避免数据溢出,通常在连续采集时并不需要我们指定缓存区大小,使用默认值即可,如果发生溢出再做适当微调。如果选择有限点采样模式,Samples per Channel 接线端指定的则是我们需要采集的总点数。Rate 引脚用于设置采样率,即每秒采集的样本,如果不连接Source 和Active Edge 引脚,则使用板卡的内部时钟分频定时,否则需要连接外部时钟信号到板卡PFI 引脚,并指定利用上升
沿或下降沿响应(图5)。
图 5
DAQmx Timing.vi
图6
DAQmx Trigger.vi
没有将内存(可以直观地理解为“task in/out”数据线)中的任务信息清除掉,所以在DAQmx Stop Task.vi 后面如果再放置一个DAQmx Start Task.vi,不需要进行硬件配置,又可以运行之前的任务。这样久而久之,会占去很多内存资源,所以如果任务信息不需要保留,可以选择放置DAQmx Clear Task.vi,这个VI会将线程中的任务信息从内存中清除,如果需要重复之前的任务,则要重新配置。所以DAQmx Clear Task.vi 也不提供task out 引脚(图9)。
图9 DAQmx Start/Stop/Clear Task.vi
图10
DAQmx API 函数搭建的采集线程