NI-DAQmx定义换算及其用法说明

概览

本文介绍了如何将NI-DAQmx自定义换算直接与设备的换算单位配合使用。本文适用于设备需要根据设置的换算比例测量信号值的情况。

内容

简介

NI-DAQmx能够为许多最常见的传感器和执行器提供内置支持。但是,如果NI-DAQmx没有明确支持您的传感器或执行器,则可以创建一个NI-DAQmx自定义换算公式,规定未换算的通道测量数据如何换算为与传感器关联的数据。使用自定义换算不会修改物理测量结果,而只是修改数据的解读方式。

 

换算单位换算单位比较

未换算单位表示未经过自定义换算、以通道的单位表示的值。通常,未换算的单位是伏特或安培,因为大多数通道默认测量或生成这两种信号。但是,如果通道包含NI-DAQmx明确支持的传感器,则可为该通道关联一个换算公式。在这种情况下,未换算单位是指受NI-DAQmx支持的传感器通道使用的单位。例如,如果将换算公式与模拟输入电阻通道相关联,则未换算单位为欧姆,而换算公式将规定如何将欧姆换算为所需要的单位。

换算后单位指NI-DAQmx应用自定义换算公式后以最终单位表示的值。您可以任意定义换算单位,只要您认为其适合应用程序就可以。例如,如果您在电压输出通道上设定了线性位置到电压的换算公式,则换算前样本的单位为伏特,而换算后样本可以指定以米为单位。

 

NI-DAQmx定义换算类型

NI-DAQmx提供四种换算类型:


线性换算

线性自定义换算类型使用方程式y = m * x + b,其中x是换算前的值,y是换算后的值。输入和输出所用的方程式相同。

 

 

映射范围换算

映射范围自定义换算类型会按照比例将一系列未换算的值换算为所需的值。

 

 

多项式换算

多项式自定义换算类型使用n阶多项式方程。NI-DAQmx既要求多项式将换算前的值转换为换算后的值(正向),也要求多项式将换算后的值转换为换算前的值(反向)。如果仅有一组系数已知,则可使用DAQmx Compute Reverse Polynomial Coefficients VI生成另一组系数。

 

 

表格换算

表格自定义换算类型会将换算前的值映射到其对应的换算值。对于在表格数值范围以内的值,NI-DAQmx将应用线性插值算法。对于超出表格最大或最小换算值的样本,读取操作会将其截掉,写入操作将会报错。

 

 

使用NI-DAQmx定义换算

NI-DAQmx自定义换算公式可以在Measurement & Automation Explorer (MAX)或DAQ助手中创建和应用,也可以使用LabVIEW或LabWindows™/CVI™通过编程方式进行创建和应用。在LabVIEW中,NI MAX中创建的自定义换算公式可以通过两种方式应用:

 

DAQmx创建虚拟通道

DAQmx Create Virtual Channel VI可以具有可提供自定义换算名称的接线端。该VI具有多态性,因此该接线端是否出现取决于通道类型。如果该终端没有出现,则表明该自定义换算不适用于通道类型。如果使用自定义换算,则单位(Units)必须指定为来自自定义换算(From Custom Scale)

 

DAQmx通道属性节点

DAQmx通道属性节点也可用于实现自定义换算。与DAQmx创建虚拟通道一样,单位(Units)必须指定为来自自定义换算(From Custom Scale)

 

在LabWindows™/CVI™中应用自定义换算的方法非常相似。要在创建通道时应用自定义换算,请指定单位(Units)来自自定义换算(From Custom Scale),并在自定义换算名称(Custom Scale Name)中设置自定义换算的名称。如果要使用属性应用自定义换算,请使用DAQmxGetChanAttribute自定义换算名称(Custom Scale Name)属性设置为您的自定义换算名称,并将单位(Units)属性设置为来自自定义换算(From Custom Scale)

自定义换算也可以以编程的方式创建和应用

自定义换算可应用于输入和输出通道:


输入通道

换算函数会将换算前模拟信号值转换为自定义换算指定的换算单位。例如,换算函数会将电压换算为线性位置。当读取与换算相关连的通道的样本时,样本以换算后的单位表示。

输出通道

换算会将单位值指定为输入,并输出相应的模拟信号值以写入输出通道。例如,换算函数会将线性位置转换为电压值。如果将样本写入与换算相关连的通道,则样本以换算后的单位表示。

换算也可以用来校准读取或写入的样本,这样,最终换算后单位就会与通道换算前的单位保持一致。当换算分配至某个通道后,换算将应用到该通道以换算前单位表示的所有属性。这包括分配给通道的最大值和最小值。例如,某个自定义换算会把伏特转换为米,如果将该换算分配给电压通道,那么通道的最小和最大属性都将以米为单位表示。

 

示例 - 将伏特转换转/分

假设我们将模拟输出电压通道连接至一个电机(电机的转速与生成的电压成正比),而且需要创建一个指定这种转换关系的换算。在这种情况下,换算前单位是伏特,换算后单位就是转/分。这时需要指明将伏特转换为转/分的方程式、表格或映射关系。创建该换算后,就需要将该换算与模拟输出电压通道关联。这样我们无需手动或使用额外代码来实现伏特和转/分之间的换算,只需将以转/分为单位的样本直接写入与换算相关的通道,NI-DAQmx会自动执行指定的转换。因此,换算可简化代码,并改善应用程序的可用性。

注意:Traditional NI-DAQ (Legacy)包含Traditional NI-DAQ Custom Scales形式的线性、多项式和表格换算。这些自定义换算的工作方式与本文所述的NI-DAQmx自定义换算类似。

 

Was this information helpful?

Yes

No