处理集群控制子集
大多数用户不会想要设置所有的控制包括在一个大的控制集群,如水平和增益配置控制。例如,假设您只在 APx 中使用模拟不平衡输出连接器,而您想要做的就是控制发电机的电平和频率。在这种情况下,水平和增益配置集群中的大多数控制都是不必要的。要处理这种情况,可以考虑自定义控件。
例如,在 My APx 项目 VI 中,让我们创建一个控件,它将允许我们仅更改模拟发生器的电平和频率。按照下面的步骤进行。
经过修改的 My APx 程序 VI 允许用户仅更改发电机频率和电平和增益测量的电平,现在准备运行。如果你运行它,你会看到它像以前一样工作。
APx LabVIEW .NET 驱动程序 VIs 广泛使用集群控件。将单个数据项从集群取出或放入集群的最佳方法是使用 LabVIEW 中的按名称绑定和按名称 Unbundle 函数。图 53(左)显示了按名称Unbundle 函数,该函数用于提取信号发生器设置(L&G)集群的特定元素。
使用LabVIEW驱动程序访问主要测量结果尽管到目前为止的示例已经说明了在 APx 中运行测量,但我们还没有考虑如何处理 APx 测量的结果。为了有价值,控制 APx500 分析仪的外部程序必须能够访问测量数据。本节将着重于使用 LabVIE W 驱动程序访问 APx 主要测量结果(当您向导航器添加测量时通常出现的结果)。下面几节将讨论派生测量结果
首先,让我们回顾一下 APx 中的测量结果,使用默认项目模板在 APx 中创建一个新项目,并向信号路径 1 添加阶跃频率扫描。如果您展开包含阶跃频率扫描测量的 Navigator 树的分支,您将在该分支中看到许多名为 Level、Gain、Relative Level 等的对象。这些是阶跃频率扫描测量的测量结果。还可以通过单击 APx 中 Graph 下面的窗口中的适当图标来选择它们(图 54)。
在阶跃频率扫描测量的情况下,有七种结果可用。如果您运行阶跃频率扫描测量并浏览结果,您将注意到七个结果中的六个显示为 XY 图形(例如,电平显示为电平与频率的图形)。这些被称为 XY 类型结果。集合中的结果之一偏差以条形图的形式显示,每个通道显示一个条形图 55。这些由单个值组成的后一种结果被称为仪表型结果。
每个测量都有不同的结果集合——有些具有所有 Meter 类型的结果,有些具有所有 XY 类型的结果,还有一些具有两种结果类型的组合。
现在让我们看看 LabVIEW 驱动程序是如何处理测量结果的。
打开 APx500 示例-简易仪表测量 VI(可从驱动器调色板的示例子调色板)并检查其前面板。忽略控制面板的橙色。这只是表示它们仍然与它们的类型 Defs 相关联。该 VI 设置为配置和运行位于信号路径 1 中的电平和增益测量(使用默认模板创建的新项目文件的默认值之一)。注意,所选测量指标设置为 3(信号路径 1 中电平和增益测量的位置)。
本项目中设置的电平增益配置控制将把模拟发生器设置为 100 mVrms 或 1 kHz -20 dBFS,并启用所有发生器通道。配置 APx500 应用程序以使用两个输入通道(在信号路径设置中)。现在运行 VI并观察测量结果集群的内容(图 56)。注意,它现在列出的路径名称为 Signal Path1,测量结果簇内
部的测量数组有一个元素——测量名称字段包含“Level and Gain”。在 Data 集群中还有两个名为“XY Results”和“Meter Results”的数组。注意,XY Results 数组是空的(这是有意义的,因为Level 和 Gain 没有 XY 类型的结果)。此外,仪表结果数组有两个元素:一个用于 Level 结果,另一个用于 Gain 结果。如图所示,仪表结果数组中的集群包含一个指示器,显示结果名称、单位,以及所有通道是否通过上限和下限。
如果你改变仪表结果数组的索引,你会注意到数组中有两个元素,对应着两个可用的结果(等级和增益)。集群内部是一个名为读数的数组,它又包含结果值的集群,以及 Passed Upper Limit 和Passed Lower Limit 指示器(图 57)。注意,Reading 数组中的元素数量对应于 APx 中选择的输入
通道数量(在本例中为两个)。
乍一看,测量结果簇显得复杂。然而,如果你研究它,你会发现数据的组织方式与测量结果的组织方式大致相同
组织在 APx500 应用程序内。此外,对于从 APx 获取测量数据来说,这是一种非常有效的方案,因为一次测量的所有结果都包含在一个集群中,该集群可以通过一条线传递给子 vis(图 58)。事实上,测量结果簇可以在一条信号路径中保存所有测量的结果。稍后将通过一个在 APx 中运行 Sequence 的示例来演示这一点。
注意,在图 58 中,只需要三个 vi 就可以打开对 APx 的引用,选择并运行电平和增益测量,并返回该测量的所有数据。
在驱动程序 VI 集合中有一个类似的示例,名为 APx500 example - simple Sweep Meas urement.vi。这个例子运行一个步进式频率扫描,并返回测量结果簇。如果运行它,您将看到返回的 XY和 Meter 结果与 APx 中用于此测量的结果相对应。
集合中有两个驱动程序 vi,它们简化了从 Measurement results 集群获取 Meter 结果和 XY 结果的过程。它们的上下文帮助如图 59 所示。
有关如何使用上述两个 vi 的示例,请参见名为 APx500 example - Simple Data Results 的示例 VI,该示例可从驱动程序菜单 Palette 的 Examples 子选项板中获得。