labview属性节点
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属性节点和方法节点

树形控件的方法节点函数菜单及其方法节点示例
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编程 者想学到更多的编程技巧可以更多的去尝试控 件的属性节点和方法节点。
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-学习笔记reference 死锁问题LabVIEW中的引用经常需要和“In Place Element Structure”配合使用。
In Place Element Structure 对一个引用的数据进行处理时,为了保证多线程安全,它会锁住引用指向的数据;其它线程若需对同一数据做操作,必须能这个In Place Element Structure中所有代码执行完毕才可,这样就避免了多线程读写同一内存数据所产生的竞争问题。
举例来说,下面这段程序的执行时间是1秒:而下面这段程序的执行时间则是2秒:因为第二段程序中的两个In Place Element Structure必须顺序执行。
有了“锁住”这个操作,就有不小心造成死锁的可能。
比如对于同一数据的引用,千万不能嵌套使用In Place Element Structure,否则就会死锁:Packed Project Library 并不是手工创建的,他是通过一个项目的生成规范,从Project Library 编译而来的。
比如上图的项目,我创建了一个Packed Library类型的生成规范。
我在这个生成规范中指定把“My Algorithm Library.lvlib”编译成Packed Project Library 。
编译的结果是在我指定的路径下生成了一个名为“My Algorithm Library.lvlibp”的文件。
它的后缀名仅比Packed Library多了一个字母p。
双击这个文件,可以打开它,看到他里面包含的VI:如果需要在其它项目中使用到这个Packed Project Library,我们可以直接把它加到另一个项目中去,下图是一个演示项目:Packed Project Library 看上去和Project Library 非常相似,用法也完全相同。
Packed Project Library 与Project Library•都是将功能相关的一组VI封装起来的方法;•库中的VI可以具有层次机构;•库中的VI都带有名字空间,名字空间是带有后缀名的库名;•都可以方便的放在项目管理器里使用尽管它们十分相似,Packed Project Library 与Project Library 相比,还是有一些明显区别的:•Packed Project Library 是通过编译生成的;•Packed Project Library 中的VI是编译后产生的,它们不能被修改;•Packed Project Library 包含有私有VI,但用户无法看到也不能使用它们;•Packed Project Library 把VI,.lvlib以及其它用到的文件都打成一个压缩包,用户在磁盘上就只能看到一个.lvlibp文件,看不到VI文件;•Packed Project Library 很适合作为最终产品发布给用户使用;•在项目中使用Packed Project Library 可以缩短编译时间,因为Packed Project Library 中的VI是已编译好的,不会再随项目编译一遍。
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功能介绍

LabVIEW是实验室虚拟仪器集成环境(Laboratory Virtual Instrument Engineering Workbench)的简称,是美国国家仪器公司(NATIONAL INSTRUMENTS,简称NI)的创新软件产品,也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。
LabVIEW是一种图形化编程语言,又称G语言。
其编写的程序称为虚拟仪器VI(Virtual Instrument),以.VI后缀。
LabVIEW模板:◆工具模板(Tools Palette)◆控件模板(Controls Palette)◆功能模板(Functions Palette)VI的组成:◆前面板(Panel)控制(Control),指示(Indicator),修饰(Decoration)。
将前面板中的控制和指示统称为前面板对象或控件。
◆框图程序(Diagram Programme)节点(Node),数据连线(Wire)节点有:功能函数(Functions),结构(Structures),代码接口节点(CIN),子VI(SubVI)。
数据端口有:控制端口和指示端口,节点端口。
LabVIEW编程又称为“数据流编程”。
◆图标/连接端口(Icon/Terminal)把VI作为一个SubVI在其它VI中调用。
常用术语:SubVI 子VI Chart 实时趋势图LLBs VI库Graph 事后记录图Objects 对象Functions 功能Panel 前面板Structures 结构Block Diagram 框图程序Cluster 簇Control 控制Bundle 打包Indicator 指示Unbundle 解包Control和Indicator 前面板对象或控件RefNum 枚举,标志号Palette 模板Local Variable 本地变量Functions Palette 功能模板Global Variable 全局变量Controls Palette 控件模板Constant 常量Tools Palette 工具模板Disable Indexing 无索引Terminal 端口Enable Indexing 有索引Wires 数据连线Read Local 本地读Bad Wires 错误数据连线Write Local 本地写Node 节点Read Global 全局读Attribute Node Write Global 全局写Property Node 属性节点Legend 图例Frame 框架Cursor 光标Channel 框架通道Bounds 边界范围Index 索引Data Acqisition(DAQ) 数据采集Shift Register 移位寄存器Label 标签运行VI1.运行VI(Run)2.连续运行VI(Run Continuously)3.停止运行VI(Abort Execution)4.暂停运行VI(Pause)调试VI1.单步执行单步(入),单步(跳),单步(出)2.设置端点3.设置探针4.显示数据流动画数据类型:基本数据类型:数字型(Numeric),布尔型(Boolean),字符串型(String)构造数据类型:数组(Array),簇(Cluster)其它数据类型:枚举(RefNum),空类型数组(Array):索引号从0开始一维数组(1D,列或向量),二维数组(2D,矩阵)组成:数据类型,数据索引(Index),数据创建:1.控制模板->Array & Cluster子模板2.根据需要将相应数据类型的前面板对象放入数组框架中使用:1.Array Size返回输入数组的长度2.Index Array返回输入数组由输入索引指定的元素3.Replace Array Element替换输入数组的一个元素4.Array Subset从输入数组取出指定的元素5.Reshape Array改变输入数组的维数6.Initialize Array初始化数组7.Build Array建立一个新数组8.Rotate 1D Array将输入数组的最后n个元素移至数组的最前面9.Sort 1D Array将数组按升序排列10.Reverse 1D Array将输入的1D数组前后颠倒,输入数组可以是任何类型的数组11.Transpose 2D Array转置输入的二维数组,也叫矩阵转置12.Search 1D Array搜索指定元素在一维数组中的位置13.Array Max & Min返回输入数组中的最大值和最小值14.Split 1D Array将输入的一维数组在指定的元素处截断,分成2个一维数组15.Interpolate 1D Array线性插值16.Threshold 1D Array一维数组阀值,是线性插值的逆过程17.Interleave 1D Arrays将从输入端口输入的一维数组插入到输出的一维数组中18.Decimate 1D Array将输入的一维数组分成数个一维数组,是Interleave 1D Arrays的逆过程簇(Cluster):类似于Pascal语言的record和C语言的struct组成:不同的数据类型创建:控制面板—>Array & Cluster子面板;向框架添加所需的元素;根据需要更改簇和簇中元素的名称使用:1.Unbundle解包。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
很多朋友对于属性节点的使用表示有些不明白,但是其作用又是相当强大的,所以必须明白怎么使用属性节点以及如何调用的问题,下面就来为大家解迷。
在获得对象的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 属性,该属性表示运行程序的操作系统名称。
运行程序后,在字符串指示器里返回所选择属性的值Windows NT,如图3所示。
Operation 为只读属性。
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输入端子。
两段代码的运行结果完全相同。
图8 为控制器建立属性节点的两种方法
VI和应用程序本身的属性和方法必须通过reference接入相应节点的方式来访问,控件的属性和方法可以使用reference来访问,也可以使用隐式连接的方法直接访问。
图9给出了一段代码示例,示例完成的功能是在字符串数组Application:All VIs In Memory 内显示内存中所有已经打开的VI的文件名,并且在路径数组Array中返回这些文件在磁盘上的路径。
图9 显示内存中的VI文件名及其磁盘路径
图9中,当前LabVIEW实例的App.AllVIs属性为字符串数组,每个元素都是内存中的一个VI文件名。
VI文件名字符串数组通过自动索引逐个进入For循环,传给Open VI Reference 函数的VI Path参数,打开文件名代表的VI的reference后,使用属性节点读取VI的Path 属性,这个属性表示VI在磁盘上的存放路径。
对内存中每个VI读取一次Path属性后,通过自动索引在输出隧道上形成路径类型的数组,输入到Array中。