LabVIEW属性节点和方法节点

合集下载

LabVIEW程序设计模式(五)—生产者消费者模式(3)_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串口属性节点帮助

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

用到的Labview知识点: 属性节点、引用句柄、子VI、枚举、条件结构、连线板

用到的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 中我们经常会碰到这样几个概念,那就是控件的引用,属性节点以及局部变量,他们之间到底有哪些区别呢?首先谈引用,在Labview 中长称为引用句柄,在Windows 编程中,引用句柄指的是指向指针的指针,换句话说,引用句柄保存的是其他一些数据类型的地址,例如窗口句柄。

在Labview 中,控件的引用句柄指的也是指向特定数据类型的指针,在Labview 中,控件的引用句柄是长度为四个字节,引用句柄不但能够表示控件的类型,还与空间一一对应,这是通过句柄的编号来实现的,引用句柄自身未代表任何空间,但是通过引用句柄指向特定的实例后,就可以操作具体的控件了,简单的理解就是通过对引用句柄的操作,可以改变控件的属性参数。

接下来说属性节点,属性节点在Labview 中是一个很重要的概念,属性节点用于访问控件的属性,例如需要改变控件在前面板的大小,运行时候的状态等都需要通过属性节点来进行操作,与引用结合起来讲就是属性节点可以设置引用的属性。

Labview 的属性节点功能强大,不同的控件有不同的引用,这些不同的引用都可以通过各自的属性节点来进行设置,但需要注意的是,属性节点的执行效率比较低,甚至比全局变量的效率还要低,所以NI 一般建议少用属性节点。

最后说局部变量,局部变量相当于C 语言中的局部变量一样,通过局部变量可以在一个VI 中访问或者存储数据,通常这些数据都是存储在不同的显示或者输入控件当中,所以说局部变量不是单独存在的,每一个局部变量都是与特定的控件相对应的,一个控件可以生成许多局部变量,就相当于在一个函数中定义了一个变量,在函数的任何地方都可以使用这个变量一样,每一个局部变量都要复制对应控件中的数据,因此这将消耗更多的内存,因此在labview 中一些大的数组中不建议使用局部变量。

tips:感谢大家的阅读,本文由。

【LabVIEW】引用,属性节点,局部变量

【LabVIEW】引用,属性节点,局部变量

【LabVIEW】引⽤,属性节点,局部变量VI内的数据传递⼀般是通过:(1)移位寄存器(2)局部变量(3)引⽤与属性节点、调⽤节点⼀、引⽤引⽤常称为引⽤句柄,在Windows编程中,引⽤句柄指的是指向指针的指针。

换句话说,引⽤句柄保存的是其他⼀些数据类型的地址,例如窗⼝句柄。

1、控件引⽤控件的引⽤句柄指的也是指向特定数据类型的指针,长度为四个字节。

控件的引⽤句柄不但能够表⽰控件的类型,还与空间⼀⼀对应,这是通过句柄的编号来实现的。

它⾃⾝未代表任何空间,但是通过引⽤句柄指向特定的实例后,就可以操作具体的控件了。

简单的理解就是通过对引⽤句柄的操作,可以改变控件的属性参数。

(1)创建建⽴⼀个控件的引⽤句柄,然后拖动⼀个控件到控件引⽤句柄,这样就可以建⽴特定数据类型的控件引⽤句柄,上图分别建⽴了数字控件和布尔控件的引⽤句柄。

(2)如何通过引⽤句柄建⽴属性节点(3)区分是指向布尔控件的引⽤句柄,因此它的值属性节点是布尔值。

是指向布尔控件引⽤的引⽤句柄,因此它的值属性是引⽤。

(4)严格类型控件引⽤句柄与⾮严格类型控件引⽤句柄①严格类型控件引⽤句柄仅接收数据类型完全相同的控件引⽤句柄例如,如果严格类型控件引⽤句柄的类型是32位的整数滑动条,那么只能把⼀个32位整数滑动条连接到该引⽤句柄接线端,⽽不能将8位整数滑动条、双精度标量滑动杆、32位整数滑动杆簇等数据类型与之连接。

在控件上创建的引⽤在默认情况下是严格类型的。

前⾯板上控件引⽤左下⾓的红⾊星形符号表明该控件引⽤是严格类型的;在程序框图上,在连接到控件引⽤接线端的属性节点或调⽤节点显⽰(严格)表明该控件引⽤是严格类型的。

②⾮严格类型控件引⽤句柄接收的数据类型较灵活例如,假设⼀个⾮严格类型控件引⽤的类型属于滑动杆,那么32位整数滑动杆、单精度滑动杆、32位整数滑动杆簇等都可连接到该控件引⽤接线端。

在⾮严格类型控件引⽤状态下,可把任何类型控件与控件引⽤接线端连接。

Labview之如何创建通用属性节点和调用节点

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高级编程

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.全局变量创建

labview功能介绍

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解包。

LabView中的属性节点

LabView中的属性节点

LabView中的属性节点很多朋友对于属性节点的使⽤表⽰有些不明⽩,但是其作⽤⼜是相当强⼤的,所以必须明⽩怎么使⽤属性节点以及如何调⽤的问题,下⾯就来为⼤家解迷。

在获得对象的reference之后,就可以使⽤属性节点(Property Node)和调⽤节点(Invoke Node)来设定对象属性和调⽤对象提供的固有⽅法(Method)。

属性节点的⼀般形式如图1所⽰:图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本⾝。

labview 公式节点使用

labview 公式节点使用

labview 公式节点使用LabVIEW是一款由美国国家仪器(National Instruments)公司推出的集成设计软件,广泛应用于测试、测量和控制系统的设计与开发。

LabVIEW具有丰富的功能,其中之一就是公式节点。

本文将详细介绍LabVIEW中的公式节点,包括其使用方法、应用场景以及一些实用技巧。

一、LabVIEW简介LabVIEW是一款图形化编程语言,相较于其他编程语言,LabVIEW以图形化的方式表达程序逻辑,使得编程更加直观、易于上手。

LabVIEW中包含了许多功能强大的节点,其中就包括公式节点。

二、公式节点概述公式节点是LabVIEW中用于执行数学计算和数学运算的节点。

它可以处理多种数据类型,如标量、向量、矩阵等。

公式节点的输入和输出分别是计算所需的输入参数和计算结果。

在LabVIEW中,公式节点位于函数面板中,可以通过拖拽的方式添加到程序框图。

三、公式节点的使用方法1.添加公式节点:首先,在LabVIEW中打开函数面板,找到数学函数子面板,从中选择所需的公式节点。

然后将其拖拽到程序框图的适当位置。

2.配置公式节点:选中添加的公式节点,然后在属性面板中进行配置。

例如,设置输入参数的数据类型、数值范围等。

3.连接输入和输出:将公式节点的输入端口与其他节点或数据源连接,将输出端口与其他节点或数据接收器连接。

4.运行程序:在程序框图中添加必要的循环、条件判断等结构,以确保程序能够正确执行。

然后运行程序,观察输出结果。

四、实例演示以下是一个简单的实例,演示如何使用公式节点计算两个数之和:1.打开LabVIEW,创建一个新的VI(虚拟仪器)。

2.在程序框图中添加两个数值输入节点,并分别设置其值为2和3。

3.从函数面板中拖拽一个加法公式节点到程序框图。

4.将数值输入节点的输出端口连接到加法公式节点的输入端口。

5.将加法公式节点的输出端口连接到一个数值显示节点。

6.运行程序,数值显示节点显示的结果为5,说明公式节点正确计算了两个数之和。

labview使用技巧

labview使用技巧

本文为LabVIEW内部交流资料,来自网络,特此说明开发机上激活以后,如果开发机升级了或者换了或者增加新的配置了等等,难道要重新购买一套8.2吗?回答=更改了配置,那么lisence manager里的机器码肯定会变,所以需要重新向NI申请激活码激活.NI的IVI驱动的来源?回答=由于NI开发的IVI驱动程序库已经包含了仪器的Class Driver,因此,程序员只要按照IVI的规范开发自己仪器的Specific Driver,就可以实现仪器的互换性。

LV和CVI的专用驱动可以从NI的网站下载,源代码是用c编写的32位的DLL形式,这就保证驱动可以直接在你的开发环境中使用(LV,CVI,VC等)。

在运行过程中LabVIEW能否添加控件?回答=不能,只能在编辑状态是做。

不过可以事先多创建几个控件,然后隐藏。

再需要使用的时候使用属性节点来操作。

编写的LV的GPIB通讯程序,从示波器读取数据。

单独可以正常执行,但放置在一个事件结构的一个WHILE循环里时,运行程序后,程序会变得不相应,而且前面板不可控制。

回答=查看客户程序,GPIB程序并没什么问题,但是作为一个子程序放在事件结构里就会存在问题,而且子程序运行时,主界面默认的是不响应的。

如果要解决这个问题,需要选择事件结构编辑面板最下方有一个默认选项,用于设置是否在事件结构执行完成之前锁定前面板,默认为锁定,取消即可。

IVI的分类。

回答=因为所有的仪器不可能具有相同的功能,因此不可能建立一个单一的编程接口。

因此,IVI的驱动分为两类。

(1) 类驱动程序(Class Drive):它们是在特定类中编写仪器软件的标准接口。

这意味着软件开发者能重复使用他们的软件系统而不会由于低层硬件更改而被迫重新测试软件系统。

目前,IVI驱动程序库可用于下列几类仪器:示波器数字化仪表、开关多路复用器、数字万用表、任意波形发生器函数发生器等。

(2) 设备类驱动程序(Specific Drive):每种牌号和类型的仪器均有相应的专用驱动程序。

试探Labview中结束程序运行的几种方法——作者:foxpro2005

试探Labview中结束程序运行的几种方法——作者:foxpro2005

试探Labview中结束程序运行的几种方法
一、在本VI中:
示例1:终止循环
图1.1
只结束了主线程循环部分(结束时会弹出对话框),由于第2个线程循环还在处于运行状态,故无法退出程序。

那么如何才能使第2个循环结束呢?
可以采用局部变量,如图1.2,但是需要将布尔控件的机械类型改为(单击转换、或释放时转换)。

如此一来,就需要在程序中加入将按钮初始化将其状态还原。

示例2:Stop函数
图2.1
点击停止按钮时,将通过Stop函数直接结束整个VI的运行,并返回到停止运行状态,注意并不会关闭前面板(故生成的EXE文件也是同样如此);
若点击前面板的X按钮(Close按钮),则它是将当前VI直接终止运行并将前面板关闭,它不会去管VI中程序执行的状态如何。

示例3:VI的属性节点FP.State属性节点设置为Closed.
点击停止按钮时,通过VI的FP.State属性节点(写入closed值)直接结束整个VI的运行并将前面板关闭,而不会去管它后面还有没有其它语句。

示例4:VI的属性节点FP.Open属性节点设置 F.。

试探Labview中结束程序运行的几种方法——作者:foxpro2005

试探Labview中结束程序运行的几种方法——作者:foxpro2005

试探Labview中结束程序运行的几种方法一、在本VI中:示例1:终止循环图1.1只结束了主线程循环部分(结束时会弹出对话框),由于第2个线程循环还在处于运行状态,故无法退出程序。

那么如何才能使第2个循环结束呢?可以采用局部变量,如图1.2,但是需要将布尔控件的机械类型改为(单击转换、或释放时转换)。

如此一来,就需要在程序中加入将按钮初始化将其状态还原。

示例2:Stop函数图2.1点击停止按钮时,将通过Stop函数直接结束整个VI的运行,并返回到停止运行状态,注意并不会关闭前面板(故生成的EXE文件也是同样如此);若点击前面板的X按钮(Close按钮),则它是将当前VI直接终止运行并将前面板关闭,它不会去管VI中程序执行的状态如何。

示例3:VI的属性节点FP.State属性节点设置为Closed.点击停止按钮时,通过VI的FP.State属性节点(写入closed值)直接结束整个VI的运行并将前面板关闭,而不会去管它后面还有没有其它语句。

示例4:VI的属性节点FP.Open属性节点设置 F.示例5:VI的方法节点Abort VI点击停止按钮时,将直接结束整个VI的运行,并返回到停止运行状态,注意并不会关闭前面板(故生成的EXE 文件也是同样如此);同使用Stop函数是一样的效果。

示例6:VI的方法节点FP.Close示例7:Exit函数停止所有正在执行的VI并结束当前的LabVIEW实例。

该函数仅关闭LabVIEW。

对其它应用程序没有影响。

该函数与停止函数停止运行VI的方式相同。

如内存中没有任何未保存的任务,系统将提示用户进行保存。

选择取消将中止操作并退出。

二、动态调用子VI时,当主VI退出时自动关闭子VI1.当子VI需要在循环结束后加入关闭前面板的动作(否则再生成EXE后,会出现,当你点击你的停止按钮时,它的前面板不会被关掉,而返回到停止状态;只有当你点击前面板上的X按钮才会把子VI的前面板给关掉),如图2.1.1。

LabView实验教程

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解包。

LabVIEW属性节点

LabVIEW属性节点

LabVIEW属性节点
在实际运⽤中,经常需要实时地改变前⾯板上的对象的颜⾊、⼤⼩和是否可见等属性。

那么就需要使⽤属性节点进⾏动态设置。

属性节点有输⼊和输出两种形式(点击右键,在快捷菜单中选择转换为写⼊/输出)
基本属性:
1 可见性visible
数据类型为bool型
2 状态Disabled
在可视状态下,当输⼊0或1 时,⽤户可以访问⾯板上的对象;当输⼊2时,⽤户不可访问对象。

3 焦点状态Key Focus
设置键盘焦点状态数据类型为布尔型
4 闪烁(Blinking)
数据类型为布尔型,对象的闪烁速度和颜⾊,在Vi运⾏状态下,这两种属性值就不能进⾏设置。

设置对象的闪烁速度和颜⾊的⽅法是:在labVIEW主选单⼯具中选择选项,弹出⼀个对话框
5 位置
6 ⼤⼩。

labview数据传递的对比

labview数据传递的对比

LabView中常用数据传递的比较编写者:LabView交流与代做群(160910366)在LabView中数据的传递主要是以下几种1.移位寄存器(功能性全局变量)2.反馈节点3.局部变量4.属性节点值5.其他(主要包括:全局变量,队列,共享变量等等,在这里不进行比较)一.运行时间比较很多人都喜欢用运行时间来判断一个程序的好坏,那么我们也进行一下比较来看看。

我们以自加一运行10万次看看运行时间。

1.移位寄存器(功能性全局变量)2.反馈节点3.局部变量4.属性节点值由上面我们可以看出各运算速度:移位寄存器 > 反馈节点 > 局部变量 >>属性节点二.数据传递模式1.移位寄存器:数据流2.反馈节点:数据流3.局部变量:非数据流4.属性节点值:非数据流所有labview的书籍中,第一章肯定都会提到labview是数据流驱动的。

如果你程序中使用了大量局部变量和属性节点,那么你的程序肯定违背了介绍中的这条信息,而破坏了数据流。

而且局部变量与属性节点较慢,这也奠定了局部变量与属性节点在labview中的地位,是用来扫尾工作的。

三.移位寄存器PK反馈节点1.速度移位寄存器 > 反馈节点2.数据流向:移位寄存器一般从左至右,反馈节点会逆流。

(破坏了程序执行的基本方向,如果文本语言中的至上而下,突然变成了自下而上,你想想会出现什么效果?)这会使反馈节点的出错率大大大于移位寄存器的出错率。

3.易读性:移位寄存器 > 反馈节点4.使用范围:移位寄存器整个循环中,反馈节点无法跨结构下图反映出了反馈节点无法跨结构进行运算。

综上所述,在功能基本相同的情况下,移位寄存器的功能每项都超过反馈节点。

四.局部变量VS属性节点值局部变量与属性节点值真是一对纠结的双生子,同样的功能,基本相同的创建方式。

这似乎都反应出了存在一个就没必要存在另一个了。

在这有必要分别说明下局部变量与属性节点值。

局部变量:局部变量这名词我最先接触是在C语言中,但是C语言中的局部变量更加接近于移位寄存器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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控件的项目可以是字
相关文档
最新文档