首页 理论教育如何优化模拟输入采集的精确度和范围?

如何优化模拟输入采集的精确度和范围?

【摘要】:模拟输入是采集最基本的功能。当采用DAQ卡测量模拟信号时,必须考虑下列因素:输入模式、分辨率、输入范围、采样速率,精度和噪声等。其中,输入范围是指ADC能够量化处理的最大、最小输入电压值。并且,由于消除了共模噪声的误差,所以差分输入的精度较高。

模拟输入是采集最基本的功能。当采用DAQ卡测量模拟信号时,必须考虑下列因素:输入模式(单端输入或者差分输入)、分辨率、输入范围、采样速率,精度和噪声等。其中,输入范围是指ADC能够量化处理的最大、最小输入电压值。DAQ卡提供了可选择的输入范围,它与分辨率、增益等配合,以获得最佳的测量精度。

单端输入以一个共同接地点为参考点。这种方式适用于输入信号为高电平(大于1V),信号源与采集端之间的距离较短(小于5m),并且所有输入信号有一个公共接地端。如果不能满足上述条件,则需要使用差分输入。差分输入方式下,每个输入可以有不同的接地参考点。并且,由于消除了共模噪声的误差,所以差分输入的精度较高。

要在LabVIEW中获取模拟输入信号,首先要利用DAQmx创建虚拟通道VI节点创建虚拟通道,然后利用DAQmx读取节点读取采集卡采样到的数据,并进行显示。

【例3-1】 电压表

操作步骤:

1)选择“文件”→“新建VI”,打开一个新的前面板。

①添加“仪表”控件(控件选板→新式→数值)。设定仪表显示控件的刻度范围为-5~5。

②添加“停止按钮”控件(控件选板→新式→布尔)。

2)按〈Ctrl+E〉键切换到该VI的程序框图。

①添加“DAQmx创建虚拟通道”功能函数(函数选板→测量I/O→DAQmx数据采集)。

●在多态VI选择器中选择“模拟输入”→“电压”。

●在物理通道输入接线端,选择“创建”→“输入控件”,并重命名控件为物理通道。

②添加“DAQmx开始任务”功能函数(函数选板→测量I/O→DAQmx数据采集)。

③添加“While循环”功能函数(函数选板→编程→结构)。

④在While循环内添加“DAQmx读取”功能函数(函数选板→测量I/O→DAQmx数据采集),该VI用于读取由多态VI选择器指定类型的测量数据。选择“模拟”→“单通道”→“单采样”→“DBL”。该选项是从一条通道返回一个双精度浮点型的模拟采样。

⑤在While循环内添加“等待下一个整数倍毫秒”功能函数(函数选板→编程→定时)。在毫秒倍数接线端,选择“创建”→“常量”,并设置常量值为10。

⑥添加“DAQmx清除任务”功能函数。在清除之前,VI将停止该任务,并在必要情况下释放任务占用的资源。

⑦添加“简易错误处理”功能函数(函数选板→编程→对话框与应用),程序出错时,该VI显示出错信息和出错位置。

按照图3-45完成各个端子的连接。

978-7-111-49442-3-Chapter03-51.jpg

图3-45 各端子连接

3)选择物理通道后,运行该VI。

4)将该VI保存为Voltmeter.vi。

连续数据采集,或者说实时数据采集,是在不中断数据采集过程的情况下不断地向计算机返回采集数据。开始数据采集后,DAQ卡不断地采集数据并将它们存贮在指定的缓冲区中(circular buffer),然后LabVIEW每隔一段时间将一批数据送入计算机进行处理。如果缓冲区放满了,DAQ卡就会又重新从内存起始地址写入新数据,覆盖原来的数据。这个过程一直持续,直到采集到了指定数目的数据点,或者LabVIEW主动中止了采集过程,或者程序出现错误。这种工作方式对于需要把数据存入磁盘或者观察实时数据很有用。

【例3-2】 电压连续数据采集和记录

操作步骤:

1)选择“文件”→“新建vi”,打开一个新的前面板。

①添加“波形图表”控件(控件选板→新式→图形)。

②添加“停止按钮”控件(控件选板→新式→布尔)。

2)按〈Ctrl+E〉键切换到该VI的程序框图。

①添加“DAQmx创建虚拟通道”功能函数(函数选板→测量I/O→DAQmx数据采集)。

●请在多态VI选择器中选择“模拟输入”→“电压”。

●在物理通道输入接线端,选择“创建”→“输入控件”,并重命名控件为物理通道。

②添加“DAQmx定时”功能函数(函数选板→测量I/O→DAQmx数据采集)。

●在多态VI选择器中选择采样时钟。

●在采样率输入接线端,右键单击选择“创建”→“输入控件”。

●在采样模式接线端,右键单击选择“创建”→“常量”,并设置常量为连续采样。

③添加“DAQmx开始任务”功能函数(函数选板→测量I/O→DAQmx数据采集)。

④添加“While循环”功能函数(函数选板→编程→结构)。

⑤在While循环内添加“DAQmx读取”功能函数(函数选板→测量I/O→DAQmx数据采集),该VI用于读取由多态VI选择器制定类型的测量数据。

●选择“模拟”→“单通道”→“多采样”→“波形”。

●在每通道采样数输入接线端,右键单击选择“创建”→“常量”,并设置常量值为100。

⑥在While循环内添加等待ms功能函数(函数选板→编程→定时)。在毫秒倍数接线端,选择“创建”→“常量”,并设置常量值为10。

⑦在While循环内添加“DAQmx读取属性”节点(函数选板→测量I/O→DAQmx数据采集),该属性节点可配置通道读取的属性。

●设置DAQmx读取属性节点,选择“属性”→“状态”→“每通道可用采样”。

●在每通道可用采样输出接线端,右键单击选择“创建”→“显示控件”。

⑧在While循环内添加“按名称解除捆绑”函数(函数选板→编程→簇、类与变体)。

⑨在While循环内添加“或”函数(函数选板→编程→比较)。

⑩添加“DAQmx清除任务”功能函数。在清除之前,VI将停止该任务,并在必要情况下释放任务占用的资源。

(11)添加“简易错误处理”功能函数(函数选板→编程→对话框与应用),程序出错时,该VI显示出错信息和出错位置。

按照图3-46完成各个端子的连接。程序前面板如图3-47所示。

3)选择物理通道,将采样率设置为100000,运行该VI。

①观察每通道可用采样显示。如果采集的速度大于读取的速度,缓冲区会逐步填满并最终溢出。

②采样率为100000Hz,仿真过程持续1ms时,缓冲区可能会溢出,程序停止并报错。

③将采样率减小为1000Hz,运行VI。观察每通道可用采样显示控件的变化。

4)将该VI保存为ContinuousAcquisition.vi。

5)将Continuous Acquisition.vi另存为Continuous Acquisition with logging.vi。按照图3-48修改Continuous Acquisition with logging.vi的程序框图。

978-7-111-49442-3-Chapter03-52.jpg

图3-46 程序框图

978-7-111-49442-3-Chapter03-53.jpg

图3-47 前面板

978-7-111-49442-3-Chapter03-54.jpg

图3-48

①删除DAQmx读取属性节点和等待(ms)函数。

②删除显示控件“每通道可用采样”。

③扩大while循环所占区域。

④在while循环中添加写入策略文件(Express VI)(函数选板→Express→输出),该ExpressVI将LabVIEW策略数据写入文件中。

⑤按图3-49选择配置写入测量文件对话框,单击“确定”。

6)持续运行Continuous Acquisition with logging.vi几秒钟后,单击“停止”按钮。

7)保存VI。

978-7-111-49442-3-Chapter03-55.jpg

图3-49 配置写入测量文件对话框