labview属性节点 下载本文

内容发布更新时间 : 2024/5/4 4:51:12星期一 下面是文章的全部内容请认真阅读。

很多朋友对于属性节点的使用表示有些不明白,但是其作用又是相当强大的,所以必须明白怎么使用属性节点以及如何调用的问题,下面就来为大家解迷。

在获得对象的reference之后,就可以使用属性节点(Property Node)和调用节点(Invoke Node)来设定对象属性和调用对象提供的固有方法(Method)。 属性节点的一般形式如图1所示:

图1 属性节点

属性节点的最上面有两个输入参数和两个输出参数,输入参数reference用于接入对象的reference,输入的reference参数在被复制之后从reference out输出,可以再接入下一个使用reference作为输入参数的节点或函数。其他两个输入、输出参数用于错误处理。当接入某一个reference后,在class的位置会出现与该reference对应对象类别名称,比如App(Application)表示接入的是应用程序的reference,VI表示接入的是VI的reference等。reference输入参数一般有默认值,例如当类别(class)为Application时,其默认值为当前运行的应用程序的reference;当类别为VI时,其默认值为节点所在VI的reference。name1,name2等端子为属性端子,name1和name2代表属性名。

在属性端子上单击鼠标右键会弹出快捷菜单,在这个菜单里含有名为Properties的属性列表子菜单,在同样的快捷菜单里Change to Read和Change to Write选项将把端口在写端口和读端口之间转换,各个端子之间的读写状态互不影响。某些属性只能读不能写。在默认情况下类型名class和属性名name 1等采用的是“短名称”的表示方法,在属性节点上弹出右键快捷菜单,选择Name Format->Long Names将打开“长名称”的显示方式。如图2所示:

图2 新放置的属性节点

作为一个例子,为第一个端子选择Operation System.Name属性,该属性表示运行程序的操作系统名称。运行程序后,在字符串指示器里返回所选择属性的值Windows NT,如图3所示。Operation System.Name为只读属性。reference参数使用了默认值,即当前运行的应用程序的reference,这同使用空的machine name参数调用Open Application Reference参数返回的结果完全相同。

图3 使用当前程序的属性节点查询操作系统名称

调用节点的一般形式如图4所示,其组织方式同属性节点相似。class为reference所关联对象的类型名,method为方法名,param 1等为参数名。如果方法调用没有返回值,则method的位置仅仅显示方法名;如果方法调用有返回值,则method变为输出端子,在return value中输出方法调用的返回值。

图4 调用节点

在调用节点上单击鼠标右键会弹出快捷菜单,在这个菜单里含有名为Methods的方法列表子菜单。一个对象可以有很多方法供调用,但是一个调用节点只能为对象调用一个方法,这一点与属性节点不同,属性节点对在其中访问的属性个数没有限制。方法调用的某些参数有默认值,可以不连接,这些可选参数的调用节点端子底色为灰色,可以根据需要决定是否接入这些参数。

图5给出了调用节点的使用示例

图5 使用调用节点打开并最大化当前VI的前面板窗口

图中调用节点所关联的的对象的类别是VI,其输入参数reference为使用路径常量

InvokeNode.vi作为vi path输入参数调用Open VI Reference函数的返回值,实际上该路径指向的VI就是调用节点所在的VI本身。因为该VI已经在LabVIEW系统中被打开,所以直接使用VI文件名即可,而不需要完整的磁盘路径。由于VI类别的调用节点的reference输入参数有默认值,即为节点所在VI本身,所以调用Open VI Reference函数实际上没有必要,可以删去。所选择的对当前VI进行调用的方法是Open FP的方法,该方法的功能是打开VI的前面板窗口(同时把前面板窗口设为当前窗口)。前面板窗口打开后,调用节点会根据接入可选参数Activate和State的值设置前面板窗口状态。图中State端口上选择Maximized值,运行程序时会看到程序自动切换到前面板窗口,而且前面板窗口被最大化。 下面对图5中的例子稍作修改,以实现远程的方法调用。首先,在ip为192.168.1.11的计

算机A上运行的LabVIEW系统中选择“工具->选项...”菜单项,打开选项对话框,在上面的类别列表中选中“VI服务器:配置”项,选中协议下的TCP/IP复选框,以允许基于TCP/IP协议的网络访问。然后在类别列表中选中“VI服务器:机器访问”,在右边的文本框中输入计算机B的ip地址192.168.1.111,确认下面的单选列表选中了允许访问,单击添加按纽,把ip地址添加到机器访问列表中,如图6所示。这样就将允许计算机B上的LabVIEW实例通过计算机A上的LabVIEW实例的VI Server,实现A上运行着的LabVIEW资源的远程访问。

图6 添加TCP/IP访问许可

在计算机B上,把InvokeNode.vi修改为如图7所示。字符串192.168.1.11作为machine name参数输入给Open Application Reference函数,以获得计算机A上运行的LabVIEW实例的reference,把这个reference传给Open VI Reference函数,这样就可以从计算机B打开计算机A上的VI的reference。根据LabVIEW的习惯,打开LabVIEW系统后新建的第一个文件名为Untitled 1(未经保存的默认文件名),假设在计算机A的LabVIEW系统中建立了这样一个新文件,则在计算机B上运行图7代码的结果是,在计算机A上打开并最大化Untitled 1的前面板窗口。由于文件Untitled 1一定会处理打开状态(存在于内存中),所以直接指定文件名Untitled 1即可。

图7 使用调用节点远程访问方法

如前所述,控制器和指示器的属性节点和调用节点的建立方式有两种:一种是在控件或其框图端子上弹出快捷菜单,并选择Create->Property Node或Create->Invoke Node,直接建立与之关联的隐式连接的属性节点或调用节点;另一种是在快捷菜单里选择Create->Reference以建立其reference,然后接入从Application Control模板添加的属性节点或调用节点的reference输入端口。在图8中Numeric数值控制器采用两种方式建立属性节点,可以看到,隐式连接的属性节点具有与控制器相同的标签,而且没有reference输入端子。两段代码的运行结果完全相同。