在对表达式和公式进行求值时,使用单位可获得额外的一致性检验,即量纲分析。当LabVIEW显示数据或用户向LabVIEW输入数据时,LabVIEW会自动转换单位,用户不必考虑不同单位之间的数据转换。

LabVIEW的内置函数,例如,是多态单位函数,能自动处理不同的单位。要创建可处理多态单位的子VI,必须使用多态单位

无论输入数据是什么单位,使用多态单位就可以用一个VI完成多种处理过程相同的计算。例如,要创建一个计算波形均方根的VI,必须定义波形相关的单位。对于电压、电流、温度等各种波形,每一种波形可能都需要一个单独的VI来处理。然而,无须针对每种情况重复编写类似的VI,只需创建包含多态单位的子VI,由带具体单位的VI进行调用。

在LabVIEW中,多态单位是一种特殊的单位。多态单位和其他单位一样能在程序框图中传递,但多态单位不能转化为任何其他类型的单位。如果将一个多态单位$1的输入控件连接到另一个多态单位$1的显示控件,由于这两个多态单位的类型之间是匹配的,该VI可以进行编译。

$1可与任何其他单位组合使用。例如,假设现在需要将一个输入控件中的数据乘以3秒,并将计算结果连接到一个显示控件,该显示控件就必须是组合单位$1 s。将显示控件的端口连接到另一个单位类型不同的输入控件的端口,会导致连线断裂。

调用一个包含多态单位的子VI后所得到的结果的单位,由调用时向这个子VI输入数据的单位决定。例如,假设现在创建一个子VI,包含$1$2两个多态单位的数据作为输入,并且得到一个以$1$2/s为单位的输出。如将单位为m/s的数据连接到子VI中以$1为单位的输入端,又将单位为kg的数据连接到另一个以$2为单位的输入端,那么LabVIEW计算结果的单位为kg m/s^2

假设另一个VI的两个输入单位分别为$1$1/s,输出单位为$1^2,如将单位为m/s的数据连接到单位为$1的输入端,又将单位为m/s^2的数据连接到单位为$1/s的输入端;那么LabVIEW计算结果的单位为m^2/s^2。如将单位为m的数据连接到这个VI的单位为$1的输入端,而将单位为kg的数据连接到单位为$1/s的输入端,将无法调用该子VI。LabVIEW会显示这个子VI的一个输入发生单位冲突,在可行的情况下LabVIEW将根据另外一个输入端的数据计算输出结果。使用多态单位的VI可以包含使用多态单位的子VI,因为LabVIEW独立保存它们各自的多态单位。

何时需使用多态单位

本节将介绍多个使用或未使用多态单位的VI范例。从一个不使用任何单位的求平均值的简单范例开始,然后再介绍一个包含一个基本单位的范例。接着,使用多态单位,将两个范例分别创建的两个VI合并成一个VI,该VI将作为子VI被另外一个范例调用。多种平均值计算多种比率值计算这两个范例解释说明了何时需要用到具有多态单位功能的子VI。

无单位的平均值计算

下图是计算两个数平均值VI的前面板。注意,其中任何输入控件和显示控件都没有单位。

下图是VI的程序框图。

有一个单位的平均值计算

下图是计算两个数平均值的前面板,数值的单位是米。

该VI的程序框图与前一个程序框图相同。单位只出现在前面板。如果前面板上的某一个输入控件或显示控件有单位,那么所有的输入控件和显示控件都必须有单位,否则程序框图中会显示断开的连线,VI将无法运行。

有多态单位的平均值计算

下图是计算两个数平均值VI的前面板。与上一个前面板不同,下列前面板使用多态单位。多种平均值计算一例将利用这个VI作为子VI:

该VI的程序框图与前一个程序框图相同。就像上面那个以米为单位计算平均值的范例一样,多态单位仅出现在前面板上。如果前面板上的某一个输入控件或显示控件有单位,那么所有的输入控件和显示控件都必须有单位,否则程序框图中会显示断开的连线,VI将无法运行。

多种平均值计算

下图是计算三个不同平均值的VI的前面板,每个值单位不同。该例说明何时需用到多态单位的子VI。

注意,长度a的单位是英尺(foot),长度b的单位是英寸(inch),平均长度的单位也是英寸(inch)。由于这个VI使用了多态单位,所以LabVIEW会自动处理从英尺到英寸的转化。

下列程序框图使用有多态单位的平均值计算VI来计算多种平均值计算范例中各例的平均值。

注意,这里可以用“计算多态单位平均值”子VI来处理多种平均值计算VI中的所有单位。在计算两个数字的平均值的时候,利用有多态单位的子VI,就不需要每次都创建一个单独VI。

有多态单位的比率值计算

当显示控件的单位是输入单位的组合的时候(如速率计算),也可利用多态单位。下图是计算一段时间间隔内数量的VI前面板。通常用户不会创建如此简单的子VI。该例子仅用来说明一个子VI的两个多态单位。多种比率值计算范例将利用这个VI作为子VI。

注意,数量的单位是$1,时间间隔的单位是$2。用户可以选择从1到9的任何数字来命名多态单位。

下图是VI的程序框图。

多种比率值计算

下图是计算三种不同的比率VI的前面板 - 电势梯度、加速度和压强。

注意,控件上的两个单位是复合单位。前面例子中的有多态单位的比率计算这个子VI,既可以处理简单单位,也可以处理复合单位。

下图是VI的程序框图。

多种平均值计算范例的程序框图和多种比率值计算的程序框图几乎完全相同。两个范例都是利用一个有多态单位的子VI处理了三种不同单位的计算。