NI-DAQmx是否在LabVIEW NXG中读取原始数据的校准值或换算值?
主要软件: LabVIEW Development Systems>>LabVIEW NXG
主要软件版本: 1.0
主要软件修正版本: N/A
次要软件: Driver Software>>NI-DAQmx
硬件: Multifunction DAQ (MIO)
问题: 当我使用支持LabVIEW NXG的NI-DAQmx时,来自DAQmx读取节点的原始数据是否已校准? 如何将获取的二进制值转换为换算值?
解答: 当您将DAQmx读取节点设置为读取原始数据1D数组时,您将获得一个整数数组。 将二进制值转换为缩放值时,请特别注意设备的分辨率和整数关系。 如果您的DAQ设备的分辨率为16位,则应将DAQmx读取节点设置为Raw 1D U16或Raw 1D I16模式,否则将丢失有效位。 当U16模式读数大于32767(2 ^ 15-1)时,表示电压为负值,该值为补码。 您可以通过减去65536将其转换为有符号整数。例如,U16中的65534在I16中为-2。 请记住,不同系列的DAQ卡之间的Unscaled Raw Data可能不同。
Figure 1: Visualizing Conversions Between Unsigned and Signed 16-bit Integers
M系列和X系列
对于M系列和X系列设备,所获取的原始数据将不被校准和换算。但是,校准信息和缩放信息由驱动程序组合,可通过任务属性节点的AI.DevScalingCoeff属性来实现。 通过单击属性»模拟输入»常规属性»高级»设备缩放系数选择此属性。 该属性返回的数据是一个数组。 阵列的每个元素是三阶多项式的系数,可用于找到校准和缩放的电压:f(X)= a [0] * X ^ 0 + a [1] * X ^ 1 + a [ 2] * X ^ 2 + a [3] * X ^ 3(其中a [i]是数组元素)。
Figure 2: Device Scaling Coefficients in Task Properties Node and Panel Indicator
E系列
对于E系列板,所获取的原始数据将在硬件上进行校准,只是没有缩放。缩放信息可通过上述属性节点获得。属性节点只返回一个2个元素的数组。这意味着E系列设备的缩放可以表示为一阶多项式:f(x)= a [0] X ^ 0 + a [1] X ^ 1。
您将注意到E系列设备的a[0]始终为零。这也意味着a[1]是E系列的范围/分辨率。
将二进制数据手动转换为非标度数据
鉴于您的电路板和测量范围的分辨率,下面的公式显示了如何手动将采集的二进制数据转换为非标度数据(伏特单位):
电压读数=(二进制读数/ 2 ^位)*(Vmax-Vmin)
例如:
- 如果您的电压范围是双极性(+/- 5V),则对于读取的二进制读数,读数为-32768至32767范围内的带符号(I16)表示。
(即Vmax = 5V,Vmin = -5V,位= 16,二进制读数= -8192,电压读数= -1.25V) - 如果您的电压范围是单极性(0-10V),那么对于返回的二进制读数,读数是0到65535范围内的无符号(U16)表示。
(即Vmax = 10V,Vmin = 0V,位= 16,二进制读数= 8192,电压读数= 1.25V)
将二进制数据手动转换为缩放数据
使用设备缩放系数属性,您可以使用类似于下面的设置将二进制数据转换为缩放数据。
![](images/E535D493FC77FE438625817C0013871C_KB20420snippet.png)
Figure 3: Example - Converting Raw Data to Scaled Data on an NI DAQ Device
相关链接:
附件:
- Converting Raw to Scaled Data.zip
报告日期: 05/29/2017
最近更新: 08/18/2017
文档编号: 7LSMNUSZ
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.