创建一个成员VI,定义接口可进行的操作。成员VI可以调用访问范围为私有或受保护的其他方法。类成员VI可以访问类的私有数据。可通过各种方式创建成员VI。

从空VI创建成员VI

按照下列步骤,从空VI创建成员VI。

  1. 创建一个新的LabVIEW类或接口或通过选择文件»打开,浏览并选择一个现有类或接口。
    注: 如通过文件»打开打开类或接口,类或接口将在类窗口而不是项目浏览器窗口中打开。用户可在类窗口中对类或接口进行开发,与在项目浏览器窗口中操作类似。
  2. (仅限于类)LabVIEW类定义类的私有数据
  3. 项目浏览器窗口中,右键单击需要创建成员VI的类或接口的项目项,从快捷菜单中选择新建»VI。新的成员VI出现在项目浏览器窗口中,LabVIEW将打开该VI。
  4. 可在打开的VI中定义类或接口进行的操作。

(仅限于类)在属性定义文件夹中创建成员VI

如在属性定义文件夹中创建一个成员VI,LabVIEW类的私有数据成为该类的属性。用户可通过属性节点访问该属性。

注:您指定的属性定义文件夹名称将决定出现在属性节点中的属性名称。如需修改属性名称,必须重命名相应的属性定义文件夹。重命名私有数据不会修改属性节点中显示的属性名称。

按照下列步骤,在属性定义文件夹中创建一个成员VI。

  1. 创建一个新的LabVIEW类或通过选择文件»打开,浏览并选择一个现有类。
    注:如通过文件»打开打开类,该类将在类窗口而不是项目浏览器窗口中打开。用户可在类窗口中对类进行开发,和在项目浏览器窗口中操作类似。
  2. 定义类的私有数据
  3. 项目浏览器窗口中,右键单击需要创建成员VI的类的图标,从快捷菜单中选择新建»属性定义文件夹项目浏览器窗口中会出现一个属性定义文件夹符号
  4. 右键单击属性定义文件夹,从快捷菜单中选择新建»VI。也可从动态分配模板静态分配模板创建新VI。新的成员VI出现在项目浏览器窗口中,LabVIEW将打开该VI。
    注:右键单击属性定义文件夹,从快捷中选择添加»文件,可将现有成员VI添加至属性定义文件夹。
  5. 接下来可对成员VI进行开发,以实现对类中私有数据的访问和交互。每个属性定义文件夹均可包括一个读取VI和一个写入VI,读取或写入类的私有数据。
    注:如使用属性节点访问LabVIEW类,右键单击类属性并从快捷菜单选择打开访问器VI,可快速查看LabVIEW类属性的实现。只有连线LabVIEW类或指向LabVIEW类的数据值引用至属性节点引用输入端,且访问器VI的程序框图可用时,才会出现该选项。如属性为动态的多个实现,选择该选项将显示选择实现对话框。使用该对话框查看属性的所有实现,或动态分配成员VI,以及打开一个或更多实现

使用属性节点读取和写入私有数据的成员VI必须使用4 × 2 × 2 × 4的连线板。读取私有数据的成员VI必须使用下列格式的连线板。

1 类输入 3 类输出 5 错误输出
2 错误输入 4 值输出

写入私有数据的成员VI必须使用下列格式的连线板。

1 类输入 3 错误输入 5 错误输出
2 值输入 4 类输出
注:成员VI的类输入类输出必须是同一个LabVIEW类。如属性定义文件夹中既有读取成员VI,又有写入成员VI,读取VI的值输出和写入VI的值输入必须是同一数据类型。

从动态分配模板中创建成员VI

可通过任何VI模板,使用新建对话框创建新的成员VI。但是,LabVIEW提供了一种创建动态分配成员VI的快速方法,这些动态分配成员VI包括许多动态方法所需的功能。LabVIEW将在所有的新成员VI中放置错误输入错误输出簇、用于错误处理的条件结构,以及输入LabVIEW类或接口和输出LabVIEW类或接口。在VI连线板上,LabVIEW将输入和输出接线端都设置为动态。按照下列步骤,从动态分配模板创建成员VI。

  1. 创建一个新的LabVIEW类或接口或通过选择文件»打开,浏览并选择一个现有类或接口。
    注:如通过文件»打开打开类或接口,类或接口将在类窗口而不是项目浏览器窗口中打开。用户可在类窗口中对类或接口进行开发,与在项目浏览器窗口中操作类似。
  2. (仅限于类)LabVIEW类定义类的私有数据
  3. 项目浏览器窗口中,右键单击需要创建成员VI的类或接口的项目项,从快捷菜单中选择新建»基于动态分配模板的VI。新的成员VI出现在项目浏览器窗口中,LabVIEW将打开该VI。VI的前面板窗口将显示类或接口显示控件、类或接口输入控件、错误输入错误输出簇。
  4. 按<Ctrl-E>键显示程序框图。(macOS)按<Option–E>组合键。(Linux) 按<Alt-E>键。程序框图将显示两个类或接口接线端、错误输入错误输出簇接线端,以及用于错误处理的“条件”结构。
  5. 接下来可对成员VI进行开发,以实现对类中私有数据的访问和交互。

从静态分配模板中创建成员VI

LabVIEW也提供一种快速方法创建静态分配成员VI。LabVIEW将在所有的新成员VI中放置错误输入错误输出簇、用于错误处理的条件结构,以及输入LabVIEW类或接口和输出LabVIEW类或接口。与创建动态分配VI相反,LabVIEW不将动态分配VI的连线板上的输入和输出接线端设置为动态。按照下列步骤,从静态分配模板创建成员VI。

  1. 创建一个新的LabVIEW类或接口或通过选择文件»打开,浏览并选择一个现有类或接口。
    注:如通过文件»打开打开类或接口,类或接口将在类窗口而不是项目浏览器窗口中打开。用户可在类窗口中对类或接口进行开发,与在项目浏览器窗口中操作类似。
  2. (仅限于类)LabVIEW类定义类的私有数据
  3. 项目浏览器窗口中,右键单击需要创建成员VI的类或接口的项目项,从快捷菜单中选择新建»基于静态分配模板的VI。新的成员VI出现在项目浏览器窗口中,LabVIEW将打开该VI。VI的前面板窗口将显示类或接口显示控件、类或接口输入控件、错误输入错误输出簇。
  4. 按<Ctrl-E>键显示其程序框图。(macOS)按<Option–E>组合键。(Linux) 按<Alt-E>键。程序框图将显示两个类或接口接线端、错误输入错误输出簇接线端,以及用于错误处理的“条件”结构。
  5. 接下来可对成员VI进行开发,以实现对类中私有数据的访问和交互。

(仅限于类)创建访问数据成员的成员VI

可快速创建LabVIEW类成员的读写访问VI。读取访问VI取消捆绑了LabVIEW类数据,因此可在调用方VI中访问数据。写入访问VI重新捆绑了来自调用方VI的类数据新值。可使用访问VI,从VI中读取数据或将数据写入VI,该VI不是LabVIEW类的成员VI。按照下列步骤,创建一个VI,访问类的数据。

  1. 创建一个新的LabVIEW类或通过选择文件»打开,浏览并选择一个现有类。
    注:如通过文件»打开打开类,该类将在类窗口而不是项目浏览器窗口中打开。用户可在类窗口中对类进行开发,和在项目浏览器窗口中操作类似。
  2. 定义类的私有数据
  3. 项目浏览器窗口中,右键单击需要创建成员VI的类的图标,从快捷菜单中选择新建»用于数据成员访问的VI,打开创建访问器对话框。也可右键单击LabVIEW类私有数据控件中数据成员,从快捷菜单中选择创建访问器
    注:必须先保存LabVIEW类才能使用该选项。如未保存新建的LabVIEW类,LabVIEW将以灰色显示用于数据成员访问的VI创建访问器
  4. 选择要访问的数据成员、访问类型、新VI为动态或静态,以及是否可使用属性节点访问数据成员。如指定数据成员为可通过属性节点访问,LabVIEW将把成员VI添加至属性定义文件夹
    注:如使用属性节点访问LabVIEW类并指定所选的数据成员可通过属性节点访问,可快速查看LabVIEW类属性的实现。右键单击类属性,从快捷菜单中选择打开访问器VI。只有连线LabVIEW类或指向LabVIEW类的数据值引用至属性节点引用输入端,且访问器VI的程序框图可用时,才会出现该选项。如属性为动态的多个实现,选择该选项将显示选择实现对话框。使用该对话框查看属性的所有实现,或动态分配成员VI,以及打开一个或更多实现
    如按<Ctrl>键并同时选择多个数据成员,LabVIEW将为每个数据成员创建一个访问器VI。(macOS)按<Option>键。(Linux)按<Alt>键。如在对话框中选择读取和写入,LabVIEW将创建一个提供读取访问的VI和另一个提供写入访问的VI。
  5. 单击创建按钮可创建访问器VI。新建的VI出现在每个数据成员和所选的每个访问类型的项目浏览器窗口,LabVIEW自动打开每个VI。VI的名称有访问类型和数据成员名称组成,例如:Read Numeric.vi。VI的前面板窗口将显示LabVIEW类显示控件、LabVIEW类输入控件、选择的数据成员、错误输入错误输出簇。
  6. 按<Ctrl-E>键显示其程序框图。(macOS)按<Option–E>组合键。(Linux) 按<Alt-E>键。程序框图将显示两个LabVIEW类接线端、选择的数据成员、错误输入错误输出簇接线端,以及用于错误处理的条件结构
  7. 现在可操作来自调用方VI的类数据。

创建重写祖先成员VI的成员VI

可创建一个动态分配的成员VI,重写或扩展祖先动态分配成员VI的功能。只有在两个成员VI的以下属性相同时,一个成员VI才可以重写另一个来自父类或父接口的成员VI:

当从快捷菜单中选择新建»重写VI时,LabVIEW将创建一个满足所有合法重写要求的重写成员VI。按照下列步骤,通过新建»重写VI选项,创建重写成员VI。

  1. 创建一个新的LabVIEW类或接口或通过选择文件»打开,浏览并选择一个现有类或接口。如正在新建一个类或接口,则必须先保存该类或接口,才可创建重写成员VI。
    注:如通过文件»打开打开类,该类将在类窗口而不是项目浏览器窗口中打开。用户可在类窗口中对类进行开发,和在项目浏览器窗口中操作类似。
  2. 项目浏览器窗口中,右键单击需要创建成员VI的类或接口的项目项,从快捷菜单中选择新建»重写VI
    注:如所选类或接口没有继承成员VI用于重写,则LabVIEW将禁用重写VI选项。父类或父接口中的VI必须动态分配成员VI,从而对其进行重写。
  3. 显示新建重写对话框。该对话框将显示祖先类或祖先接口定义的动态方法。选择要重写的成员VI。
  4. 单击OK按钮。
  5. 新的成员VI出现在项目浏览器窗口中,LabVIEW将打开该VI。LabVIEW使用祖类VI的图标对子类或接口的图标进行重写,创建新VI的图标。另外,VI前面板上将显示从祖VI复制的输入控件和显示控件、LabVIEW类显示控件,以及错误输入错误输出簇。
  6. 按<Ctrl-E>键显示其程序框图。(macOS)按<Option–E>组合键。(Linux) 按<Alt-E>键。程序框图将显示LabVIEW从祖先成员VI复制的接线端。LabVIEW还将接线端自动连线至调用父类方法节点。

接下来可根据需要修改重写成员VI的程序框图上的代码。

注:未经修改时,新建的重写成员VI将与祖先成员VI实现相同的功能。通过重写成员VI可增加和减少成员VI从父成员VI继承的功能。

创建需子孙类或接口重写VI的成员VI

用户可创建一个动态分配VI,该VI可要求子孙类或接口重写或扩展成员VI的功能。如子孙要重写祖先成员VI,成员VI不必提供VI在子孙的任何实现。默认情况下,接口需要子孙来重写成员VI,类不需要子孙来重写成员VI。

按照下列步骤,使用子孙重写成员VI。

  1. 创建一个新的LabVIEW类或接口或通过选择文件»打开,浏览并选择一个现有类或接口。
    注:如通过文件»打开打开类或接口,类或接口将在类窗口而不是项目浏览器窗口中打开。用户可在类窗口中对类或接口进行开发,与在项目浏览器窗口中操作类似。
  2. 项目浏览器窗口中,右键单击需要创建成员VI的类或接口的项目项,从快捷菜单中选择新建»基于动态分配模板的VI。新的成员VI出现在项目浏览器窗口中,LabVIEW将打开该VI。VI的前面板窗口将显示类或接口显示控件、类或接口输入控件、错误输入错误输出簇。
  3. 项目浏览器窗口,右键单击从中创建成员VI的类或接口的项目项,从快捷菜单中选择属性,打开类/接口属性对话框。
  4. 选择项设置,打开项设置页,选择子孙要重写的动态分配VI。
  5. 勾选子孙必须重写复选框。用户不必提供该VI的任何应用,因为每个子孙必须用其各自的应用重写该VI。