LabVIEW属性节点和方法节点
LabVIEW程序设计模式(五)—生产者消费者模式(3)_LabVIEW程序的动态调用

LabVIEW程序设计模式(五)—生产者/消费者模式(3)_LabVIEW程序的动态调用LabVIEW程序设计2009-05-19 17:11:09 阅读696 评论0 字号:大中小订阅简单而言,动态调用指的是通过程序控制另外一个程序的运行、停止、赋值和获取值等。
LabVIEW提供了多种动态调用的方式,从底层而言是通过VI Server 技术实现的。
图31所示为LabVIEW中的Application Control选板,动态调用所使用的节点都位于这个选板。
当调用一个在硬盘、内存甚至是网络路径上的vi时,首先要使用Open VI Reference以将该VI载入内存并获取VI的“句柄(Reference)”;然后再使用该句柄进行其它的控制操作;最后再关闭该VI的句柄避免内存泄漏,这就完成了一次对VI的调用。
图31 Application Control选板图32是一个动态调用的具体实现代码,首先使用Open VI Reference获取被动态调用VI的Reference(例子中是C:\average.vi);再使用Call By Reference Node 节电动态运行该VI;最后关闭VI的Reference。
在使用Call By Reference Node 时需要事先指定被调用VI的输入输出接口,也就是说这种动态调用的前提是必须知道被调用VI的输入输出接口,否则无法进行动态调用。
图32 VI的动态调用Open VI Reference的路径输入是一个多态的输入口,也可以使用String输入,如图33所示。
此时被调用的VI必须在内存中,且输入的是被调用VI的文件名。
值得一提的是这种“文件名”调用方式在可执行程序中是无法被调用的,因此建议最好采用路径的调用方式。
图33 Open VI Reference的多态性【应用5】本例将使用LabVIEW的动态调用方式实现斐波那契数列(Fibonacci数列)。
labview串口属性节点帮助

labview串口属性节点帮助长名称说明Serial Settings:Parity 指定传输或接收每一帧所使用的奇偶校验。
有效值为:(0)无校验(1)奇校验(2)偶校验(3)标记校验(4)空校验。
标记表示存在奇偶位且为1。
空表示存在奇偶位且为0。
详细信息Serial Settings:Number of Bytes at Serial Port 返回会话句柄使用的串口上当前可用的字节数。
详细信息Serial Settings:Data Bits 指定每一帧使用的数据位数。
有效值为5-8。
详细信息Serial Settings:Modem Line Settings:Line DCD State 指定数据载波检测(DCD)输入信号的当前状态。
调制解调器使用该属性表明在电话线上检测到载波(调制解调器)。
也被称为接收线信号检测(RLSD)。
该属性为只读,除非Wire Mode 属性为RS232/DCE 或RS232/AUTO ,且硬件的当前状态为DCE 。
详细信息Serial Settings:Modem Line Settings:Break State 设置串口中断状态的手动控制。
如属性被置有效,它将挂起字符传输并将传输线置于中断状态,直至属性被置无效。
如需VISA 在每个写操作后自动发送中断信号,可用Break Length(Break Len)和EndMode for Writes(ASRL End Out) 属性。
默认值为Unasserted 。
详细信息Serial Settings:ErrorReplacement Character 指定字符,用于替换带有错误(例如,奇偶校验错误)的输入字符。
默认值为0。
详细信息Serial Settings:Wire Mode 指定当前的连线/转发器模式。
对于RS485硬件,该属性仅对NI 开发的RS485串行驱动程序有效。
对于RS232硬件,值RS232/DCE 和RS232/AUTO 仅对NI 开发的RS232串行驱动程序有效,相应的NI 硬件中也支持该功能。
LabVIEW虚拟仪器技术第4章-程序结构

基本程序结构
在各编程语言中,基本的程序结构有三种: 顺序结构、条件结构和循环结构。
LabVIEW中,除了具有上述三种程序结构外, 还提供了用于事件处理的事件结构。
此外,还有局部变量,属性节点和调用节点 等功能,为增加程序编写的灵活性提供了保障。
文本语言接口
在LabVIEW的图形化编程环境中,利用上述 程序结构可以解决很多非常复杂的问题。
范例
条件结构的输出隧道。
条件结构的输出方式
条件结构的输出有两种方式:
1.在条件分支内部输出数据
2.通过数据输出隧道,在条件结构外部输出数据
在分支内部输出数据更符合常规编程语言的编 程方式,但是从LabVIEW数据流的观点来看,并 不是最佳选择。
程序求输入数值的平方根,计算之前先判断 输入是否大于等于0。判断为真,结果由显示控件 输出,判断结果为假时,条件为真的分支不执行。
点击右键,在快捷菜单中我们可以添加或删 除每一帧。我们也可以通过拖曳的方式来改变每 一帧的大小。
顺序结构在执行时,会按照帧的顺序,从左 到右,依次执行每一帧。每一帧都有一个帧序号, 最小的帧序号为0,然后是1、2、3依次递增。
平铺式顺序结构因为代码是平铺的,因此代 码更直观,可读性较高。但是它的缺点是占用空 间较大。
针对于此,可以通过调用快捷菜单中的“替 换为层叠式顺序”功能,将平铺式的顺序结构转 换成层叠式的,以使VI看起来更为紧凑。
4.1.2 层叠式顺序结构
从本质上看,层叠式顺序结构和平铺式顺序 结构的功能完全相同,且二者可以相互转换。
层叠式顺序结构的创建
层叠式顺序结构外形类似于条件结构。它包 括一个或多个顺序执行的子程序框图或帧。
在很多情况下,程序员会需要多段代码按照预 先设定的顺序执行,这就需要顺序结构来帮忙了。
用到的Labview知识点: 属性节点、引用句柄、子VI、枚举、条件结构、连线板

用到的Labview知识点:属性节点、引用句柄、子VI、枚举、条件结构、连线板
首先创建三态的子VI:
1.在前面板添加“枚举”控件以及Bool引用句柄,创建布尔引用句柄方法为:先添加“控件引用句柄”,然后右键→选择VI服务器类→通用→图形对象→控件→布尔,并勾选“包括数据类型”;
2.在程序框图添加“属性节点”,并和Bool引用句柄连线;
3.添加“条件结构”,并同“枚举”类型连接,其中“枚举”类型的“编辑项”属性中添加三态:default,run,fault;
4.在每态条件结构中分别定义“数组常量”,然后添加“簇常量”,并在“簇常量”中添加两个“颜色盒常量”,然后将这个“簇常量”整体放入前面定义的“数组常量”,并同“属性节点”连线;
5. 程序框图如下图所示:
6.在前面板中对子VI进行连接线定义:前面板中右键子VI图标,选择编辑图标,此处选取自己喜欢的子VI图标,并勾选显示接线端,退出编辑后,继续右键子VI图标,选择“显示连线板”,开始选取子VI的连线板,这里选择前面板中的“枚举”和“bool引用句柄”这两个输入,至此子VI建立完成,前面板如下图所示:
子VI建立好后,就可以设计一个指示灯,试验一下三态LED的运行情况了,我添加的一个简单VI如下图,这里注意的是要创建指示灯的一个bool引用:
程序建立完成后,就可以运行了,试验结果表明此VI能很好的实现三态LED显示。
Labview中引用,属性节点,局部变量之间的区别

Labview中引用,属性节点,局部变量之间的区别在Labview 中我们经常会碰到这样几个概念,那就是控件的引用,属性节点以及局部变量,他们之间到底有哪些区别呢?首先谈引用,在Labview 中长称为引用句柄,在Windows 编程中,引用句柄指的是指向指针的指针,换句话说,引用句柄保存的是其他一些数据类型的地址,例如窗口句柄。
在Labview 中,控件的引用句柄指的也是指向特定数据类型的指针,在Labview 中,控件的引用句柄是长度为四个字节,引用句柄不但能够表示控件的类型,还与空间一一对应,这是通过句柄的编号来实现的,引用句柄自身未代表任何空间,但是通过引用句柄指向特定的实例后,就可以操作具体的控件了,简单的理解就是通过对引用句柄的操作,可以改变控件的属性参数。
接下来说属性节点,属性节点在Labview 中是一个很重要的概念,属性节点用于访问控件的属性,例如需要改变控件在前面板的大小,运行时候的状态等都需要通过属性节点来进行操作,与引用结合起来讲就是属性节点可以设置引用的属性。
Labview 的属性节点功能强大,不同的控件有不同的引用,这些不同的引用都可以通过各自的属性节点来进行设置,但需要注意的是,属性节点的执行效率比较低,甚至比全局变量的效率还要低,所以NI 一般建议少用属性节点。
最后说局部变量,局部变量相当于C 语言中的局部变量一样,通过局部变量可以在一个VI 中访问或者存储数据,通常这些数据都是存储在不同的显示或者输入控件当中,所以说局部变量不是单独存在的,每一个局部变量都是与特定的控件相对应的,一个控件可以生成许多局部变量,就相当于在一个函数中定义了一个变量,在函数的任何地方都可以使用这个变量一样,每一个局部变量都要复制对应控件中的数据,因此这将消耗更多的内存,因此在labview 中一些大的数组中不建议使用局部变量。
tips:感谢大家的阅读,本文由。
【LabVIEW】引用,属性节点,局部变量

【LabVIEW】引⽤,属性节点,局部变量VI内的数据传递⼀般是通过:(1)移位寄存器(2)局部变量(3)引⽤与属性节点、调⽤节点⼀、引⽤引⽤常称为引⽤句柄,在Windows编程中,引⽤句柄指的是指向指针的指针。
换句话说,引⽤句柄保存的是其他⼀些数据类型的地址,例如窗⼝句柄。
1、控件引⽤控件的引⽤句柄指的也是指向特定数据类型的指针,长度为四个字节。
控件的引⽤句柄不但能够表⽰控件的类型,还与空间⼀⼀对应,这是通过句柄的编号来实现的。
它⾃⾝未代表任何空间,但是通过引⽤句柄指向特定的实例后,就可以操作具体的控件了。
简单的理解就是通过对引⽤句柄的操作,可以改变控件的属性参数。
(1)创建建⽴⼀个控件的引⽤句柄,然后拖动⼀个控件到控件引⽤句柄,这样就可以建⽴特定数据类型的控件引⽤句柄,上图分别建⽴了数字控件和布尔控件的引⽤句柄。
(2)如何通过引⽤句柄建⽴属性节点(3)区分是指向布尔控件的引⽤句柄,因此它的值属性节点是布尔值。
是指向布尔控件引⽤的引⽤句柄,因此它的值属性是引⽤。
(4)严格类型控件引⽤句柄与⾮严格类型控件引⽤句柄①严格类型控件引⽤句柄仅接收数据类型完全相同的控件引⽤句柄例如,如果严格类型控件引⽤句柄的类型是32位的整数滑动条,那么只能把⼀个32位整数滑动条连接到该引⽤句柄接线端,⽽不能将8位整数滑动条、双精度标量滑动杆、32位整数滑动杆簇等数据类型与之连接。
在控件上创建的引⽤在默认情况下是严格类型的。
前⾯板上控件引⽤左下⾓的红⾊星形符号表明该控件引⽤是严格类型的;在程序框图上,在连接到控件引⽤接线端的属性节点或调⽤节点显⽰(严格)表明该控件引⽤是严格类型的。
②⾮严格类型控件引⽤句柄接收的数据类型较灵活例如,假设⼀个⾮严格类型控件引⽤的类型属于滑动杆,那么32位整数滑动杆、单精度滑动杆、32位整数滑动杆簇等都可连接到该控件引⽤接线端。
在⾮严格类型控件引⽤状态下,可把任何类型控件与控件引⽤接线端连接。
Labview之如何创建通用属性节点和调用节点

如文档对您有帮助,欢迎下载支持,谢谢!LV Nugget 之如何创建通用属性节点和调用节点 2011-01-01 07:34/csxcs366/blog/10-12/201447_993ee.html这篇文章中我谈到了创建通用引用的两个简便方法。
我们创建通用引用的目的是通过通用引 用的属性节点和方法节点等修改引用所指向的对象。
这与我们直接创建前面板中控件的引用 的目的是一样的。
我们必须注意,LV 中的数据都是以输入控件、显示控件和常量的方式存在的,通用控件的 引用本身也是一种特殊的控件,这导致了许多初学者在使用通用引用时出现了问题。
NI 论坛上有几个帖子就出现了这样的问题,我简单了回答了一下,但是网友无法理解,发 邮件希望我给解答一下,在这里我一并回答这个问题。
帖子地址为:/t5/NI-LabVIEW-CVI-数据采集等产品讨论区/两个难题-关于显 示数据和调用节点/td-p/1398578对于前面板中的控件,可以直接通过控件的快捷菜单创建它的引用、属性节点、调用节点、 常量、局部变量等等,以多列列表框为例,直接利用控件的快捷菜单。
在程序框图中的控件的接线端子中,同样可以利用接线端子的快捷菜单,创建指向控件的引 用、属性节点等,与控件的快捷菜单功能是相同的。
我们知道,对于前面板中的控件,直接创建它的属性节点和调用节点时,是不需要连接引用 的,这是因为我们通过快捷菜单创建时候,LV 自然知道创建的属性节点和调用节点是指向 这个特殊控件的。
实际上,我们也可以通过控件的引用,间接创建这个控件的属性节点和调用节点,在应用控 制函数选板中提供了很多与引用有关的操作,包括属性节点和调用节点。
箭头所示的属性节点和调用节点在使用时候必须连接控件的引用,也就是说这里的属性节点 和调用节点是通用的,不指向任何特定控件的,只有连接一个引用的时候,它才会指向一个 特定的控件或者特定的控件类型,指向特定的控件如下图所示,指向特定的控件类型则是我 们将要重点讨论的。
LabVIEW编程与项目开发实用教程 第6章 LabVIEW高级编程

图6-4 公式节点输入/输出端子对应,左图正确/右图错误
6.1.2 公式
在函数数学公式与脚本选板中公式节点 ,见图6-5。
当把公式节点放置到程序框图上时,系统会自动弹出“配置公式”对 话框,见图6-6。在对话框中输入公式后,若对话框右上方的方块显示为 绿色时,则表明系统识别了输入的函数。当出现错误或非法公式时,对 话框右上方的方块显示为灰色,表明系统不识别。
图 6-1 公式节点选板
图 6-5 脚本与公式选板
与创建循环的方法类似,用户从结构选板中选择公式节点,用鼠标 在程序框图上任意位置拖放任意大小的公式节点。公式节点是一个大小 可变的方框,利用它可直接在程序框图中输入数学公式,如图6-3所示。
在程序框图上输入数学公式或类似于C语言的表达式,可以使用的函 数如下:abs、acos、acosh、asin、asinh、atan、atan2、atanh、ceil、cos 、cosh、cot、csc、exp、expm1、floor、getexp、getman、int、intrz、ln、 lnp1、log、log2、max、min、mod、pow、rand、rem、sec、sign、sin、 sinc、sinh、sqrt、tan和tanh等。
LabVIEW通过对象标签将局部变量和 前面板对象相关联,因此必须用描述性 的自带标签对前面板控件和显示件进行 标注,如图6-11中对象标签“字符串”、 “数值”等。
2.局部变量使用方法
(1)使用局部变量可对前面板控件进行 读/写。 局部变量有读和写两种属性。当一个局部 变量为读属性时,说明可以从该局部变量 中读取数据。相反,当其为写属性时则可 以给该变量赋值。右键单击从弹出菜单上 选 转换为写入 或 转换为读取。
1.全局变量创建
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
树形控件的方法节点函数菜单及其方法节点示例
7
11.3 通过子VI调用控件的属性和方法
一般情况下,将控件作为子VI的输入端时只能 传递控件的值,而不能传递控件的属性 。那么 如何才能在子VI中调用上层VI中控件的属性和 方法节点呢? 这就需要使用Refnum控件作为子VI的输入端 子,在调用时将控件的Reference与Refnum端 子连线即可。
19
小试身手
1. 在第6章习题1的基础上利用“报警信息”控 件的blinking属性,实现在输出报警信息的同 时伴随闪烁,如下图所示。为了能看到闪烁效 果,需要将采样间隔设到5秒以上。
20
小试身手
2. 本书第156页中的图11.14所示的例子存在 bug,for循环部分应该改为下面左图所示。在 此基础上将for循环部分封装为子VI,利用编程 生成如下面右图所示的树。
10
11.4 几种常用控件的编程举例
通过属性节点来设置Ring控件的选项
11
11.4 几种常用控件的编程举例
获取Ring控件或Enum控件的当前选中文本
12
11.4 几种常用控件的编程举例
11.4.2 列表框(Listbox)
对于Ring控件和Enum控件,用户每次只能选择一 个选项。而通过列表框用户每次可以选择一个或多 个选项,甚至0个选项
16
11.4 几种常用控件的编程举例
11.4.4 自动图例举例
17
11.4 几种常用控件的编程举例
18
11.5 小结
从本章的例子可以看出,通过属性节点和方法 节点可以让控件的功能与动态行为更加丰富。 在LabVIEW编程中,当某种功能很难用普通的 VI函数实现的时候,也许通过属性节点和方法 节点就能很轻松地解决。所以若LabVIEW编程 者想学到更多的编程技巧可以更多的去尝试控 件的属性节点和方法节点。
通过编程编辑列表框选项
13
11.4 几种常用控件的编程举例
读取列表框选中选项的名称
14
11.4 几种常用控件的编程举例
11.4.3 树形控件(Tree Control)
通过编程为树形控件添加项目必须通过属性节点和 方法节点才能实现
15
11.4 几种常用控件的编程举例
通过编程为树形控件添加项目
Ring控件的属性节点举例
4
11.1 属性节点(Property Node)
举例
通过Visible属性控制按钮是否可见
5
11.1 属性节点(Property Node)
举例
在事件结构中使用属性节点
6
11.2 方法节点(Invoke Node)
方法节点和属性节点非常类似,方法节点就好 比控件的一个函数,它会执行一定的动作,有 些时候还需要输入参数或返回数据。
属性节点(Property Node) 方法节点(Invoke Node) 通过子VI调用控件的属性和方法 几种常用控件的编程举例 小结
3
11.1 属性节点(Property Node)
属性节点可以用来通过编程设置或获取控件的 属性,譬如在程序运行过程中,我们可以通过 编程设置数值控件的背景颜色等属性。
第11章 属性节点和方法节点
1
引子
在面向对象的编程中,我们将类中定义 的数据称为属性,而函数称为方法。实 际上,LabVIEW中的控件、VI、甚至应 用程序都有自己的属性和方法,譬如一 个数值控件,它的属性包括它的文字颜 色、背景颜色、Caption和Label等;
2
本章内容
11.1 11.2 11.3 11.4 11.5
8
11.3 通过子VI调用控件的属性和方法
通过子VI调用控件的属性节点示例
9
11.4 几种常用控件的编程举例
11.4.1 Ring控件和Enum控件
对于两种控件,用户都是一次只能选择其中一个项目,控件的输出 值都为数字。不同的是Ring控件各项目的值是可以任意设定的,而 Enum控件各项目的值一定是从0到n-1(n代表项目个数),这是因 为Enum控件才是标准的枚举类型。Ring控件的项目可以是字