搜档网
当前位置:搜档网 › 在LabView中使用MATLAB脚本节点

在LabView中使用MATLAB脚本节点

在LabView中使用MATLAB脚本节点
在LabView中使用MATLAB脚本节点

LabVIEW 属性节点初级课程

可以选择真时继续()。 计数接线端:表示已经完成的循环次数,该计数从0开始。在本例中,如果当产生的第13个点值超过0.9时,计数器值为12。 结构隧道: 当需要将循环中的数据传入或者传出时,我们使用隧道的方式(这一点将在后面详细介绍)。 2. For 循环 For 循环常用于已知代码循环次数的情况,比如数组的操作。下面是For 循环的流程图: 2.1 For 循环的流程图 我们通过以下的例子来具体介绍以下For 循环: 如图 2.2,使用For 循环产生一个3×4的二维随机数组。(该程序见附件Generate array.vi ) 图2.2 For 循环产生3×4的二维随机数组 属性节点初级课程 控件的大部分属性都可以通过属性对话框ā行设置,对于未包括的属性则需要通过属性节点来编程操作了。属性节点用于访问对象的属性。在某些应用程序中,可能需要通过编程使前面板对象对特定的输入作出响应,使其显示不同的外观。 例如,当用户输入一个无效的密码时,红色指示灯开始闪烁。 又如,改变图表上线条的颜色, 当数据点高于某一特定的值时,希望显示的线条是红色而不是绿色。 使用属性节点可通过编程来完成这些修改。 也可使用属性节点通过编程来调整前面板对象的大小、隐藏前面板的部分内容、向图形中添加光标等。 LabVIEW 的属性节点功能强大、用途多样,不同控件对象有不同的属性。 本课程将介绍一些特别的属性的范例,这些属性可用于改变前面板对象的外观和功能。 关于属性节点的更多信息见LabVIEW 帮助。1. 创建属性节点 右键单击前面板对象,从快捷菜单中选择创建? 属性节点,再从弹出的菜单中选择一个属性,这样就创建了该前面板对象的一个属性节点。同时,LabVIEW 会在程序框图上创建一个与该前面板对象隐含链接的属性节点。 如果对象自带标签,属性节点将有同样的标签。 创建节点之后可以修改该标签。 同一个对象可以创建多个属性节点。2. 使用属性节点 属性节点创建后,节点最初有一个代表某个属性的接线端,您可以通过对其进行修改来更改对应的前面板对象的属性。 属性节点上的这个接线端既可用于设置(写入)属性,也可用于获取(读取)该属性的当前状态。(某些属性节点是只读/只写的除外)。 例如,如果为一个数字数值控件创建了属性节点,则该节点将在程序框图上显示,其可见属性默认为选中。 接线端右侧出现的小箭头表示正在读取属性值。右键单击接线端并从快捷菜单中选择转换为写入则改为写入操作。 将布尔假值连接到可见属性接线端,则属性节点接受数据时前面板上不出现该数值控件。将布尔真值连 接到可见属性接线端,则前面板上将出现该控件。见图1:

LabVIEW的高级编程技巧

LabVIEW的编程技巧 本章介绍局部变量、全局变量、属性节点和其他一些有助于提高编程技巧的问题,恰当地运用这些技巧可以提高程序的质量。 8.1局部变量 严格的语法尽管可以保证程序语言的严密性,但有时它也会带来一些使用上的不便。在LabVIEW这样的数据流式的语言中,将变量严格地分为控制器(Control)和指示器(Indicator),前者只能向外流出数据,后者只能接受流入的数据,反过来不行。在一般的代码式语言中,情况不是这样的。例如我们有变量a、b和c,只要需要我们可以将a的值赋给b,将b的值赋给c等等。前面所介绍的LabVIEW内容中,只有移位积存器即可输入又可输出。 另外,一个变量在程序中可能要在多处用到,在图形语言中势必带来过多连线,这也是一件烦人的事。还有其他需要,因此LabVIEW引入了局部变量。 8.1.1局部变量的创建 我们在框图上设置三个变量,两个控制器分别为Numeric和Numeric 2,现在增加局部变量。选择Function→Structures→Local Variable 然后将其拖到框图上,就可得到一个代“?”的图标,下一步将其与框图中已有的变量建立关联,有鼠标右键单击图标,进入Select Item 选择“input1” ,最后框图就变成了图7-1右边的样子。 图7-1局部变量的创建 局部变量只是原变量的一个数据拷贝,但是它的属性可以修改,并且这种改变不会影响原变量。例如上图中的这个局部变量可以利用快捷菜单中的Change To Read 变成一个指示器。这样的一对变量的组合,就使它既可读又可写了。局部变量有三种基本的用途:控制初始化、协调控制功能、临时保存数据和传递数据。下面我们通过练习来说明。

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)和End Mode for Writes(ASRL End Out) 属性。默认值为 Unasserted 。 详细信息 Serial Settings:Error Replacement Character 指定字符,用于替换带有错误(例如,奇偶校验错误)的输入字符。默认值为0。 详细信息 Serial Settings:Wire Mode 指定当前的连线/转发器模式。对于RS485硬件,该 属性仅对NI 开发的RS485串行驱动程序有效。对于 RS232硬件,值RS232/DCE 和RS232/AUTO 仅对NI 开发的RS232串行驱动程序有效,相应的NI 硬件中 也支持该功能。不支持该功能 时,RS232/DTE 是唯 一有效的值。 详细信息 Serial Settings:Discard NUL Characters 指定是否忽略值为0的数据字节。如属性为TRUE , 读取操作将忽略NUL 字符。如该属性为FALSE ,读取操作将NUL 字符视为正常字符。对于二进制传递,应将该属性设置为FALSE 。默认值为FALSE 。 详细信息 Serial Settings:Stop Bits 指定用于表示帧结束的停止位的数量。有效值为:(10)停止1,(15)停止1.5,(20)停止2。 详细信息 Serial Settings:Flow Control 指定传输和接收数据使用的流控制方法。有效值是: (0)无流控制,(1)XON/XOFF 流控制, (2)RTS/CTS 流控制,(3)XON/XOFF 和RTS/CTS 流控制, (4)DTR/DSR 流控制,(5)XON/XOFF 和DTR/DSR 流控 制。某些值或组合值只适用于特定的串行端口和/或 操作系统。 详细信息 Message Based 指定是否在出现END 条件时终止读取操作。属性仅

LabVIEW Tree Control使用说明

LabVIEW Tree Control 使用说明 一.控件简介 (1) 二.控件的常用属性、方法、事件 (2) 三.常见操作的实现方法 (2) 3.1 增加节点 (2) 3.2 删除节点 (2) 3.3 节点的移动 (3) 3.4 获取当前用户选中的节点 (3) 3.5 节点的查找 (3) 3.6 节点的遍历 (4) 3.7 Tree Control界面显示内容操作 (4) 3.7.1 读取left Cell String 或Child Text的值 (4) 3.7.2 修给某Item的值 (4) 3.8 控件内容运行时修改 (4) 一.控件简介 LabVIEW的Tree Control 控件以树型结构显示信息,每个节点带细节描述列。可以显示该节点的其它信息。如下图所示 图 1 . 控件外观

二.控件的常用属性、方法、事件 控件的常用属性、方法、事件可以很方便的从LabVIEW的帮助或者编写简单的Demo 获取,这里就不再赘述。 只是有一点需要注意,控件属性结构上显示的字符是控件的Left Cell String,可以重复,再控件内部管理这些节点是用Tag属性,该属性为字符串类型,不可重复,如果增加节点时不设置该属性,LabVIEW会默认将Left Cell String作为Tag,遇到重复的情况以”下划线加数字”区分。如“张三_1”。在控件的方法、事件中获取到节点值都是控件的Tag。 三.常见操作的实现方法 3.1 增加节点 使用控件的Add Item 方法,如图所示: 如果只是增加一个节点作为树的最后一个节点,可以使用Add Item To End 方法。3.2 删除节点 使用控件的delete Item 方法 Delete children 代表删除父节点是否要删除子节点。如果不删除子节点,子节点将往上移动一层替代原父节点的位置。如果该节点没有子节点而要求删除,将会产生错误。所以删除时最好先检测是否有子节点

Labview中引用,属性节点,局部变量之间的区别

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

labview属性节点

很多朋友对于属性节点的使用表示有些不明白,但是其作用又是相当强大的,所以必须明白怎么使用属性节点以及如何调用的问题,下面就来为大家解迷。 在获得对象的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 https://www.sodocs.net/doc/4113397634.html,属性,该属性表示运行程序的操作系统名称。运行程序后,在字符串指示器里返回所选择属性的值Windows NT,如图3所示。Operation https://www.sodocs.net/doc/4113397634.html,为只读属性。reference参数使用了默认值,即当前运行的应用程序的reference,这同使用空的machine name参数调用Open Application Reference 参数返回的结果完全相同。

Labview

1.LabVIEW包括前面板、程序框图、图标|连线器三部分。。 2.框图程序由节点、端点、图框、连线元素构成。 3. 波形图数据输入的基本形式是数据数组、簇、波形数据。 4. 数据采集简称DAQ。 5. 程序结构包括循环结构、分支结构、顺序结构、分式节点。 6.顺序结构分为堆叠的顺序结构、平铺的顺序结构。 7.数组由数据类型、数据索引、数据三部分组成。 8.数据采集系统组成传感器、信号调理、数据采集、信号处理、仪器面板。 9. 图形显示主要控件Graph控件、Chart控件。 10.工具模板中的工具有操作工具、定位工具、标注工具、连线工具、滚动工具。11.循环程序结构包括While循环、For循环。 12. 簇包含不同的数据类型,具有固定大小。 13.在框图程序窗口的空白处点击鼠标右键弹出函数选板。 14.一维数组的数据索引是一个数。 15.For循环有两个固定的数据端子为计数端子、重复端子。 16.波形图可以显示的数据类型是双精度浮点数。 17.While循环有两个固定的数据端子重复端子、条件端子。 18.数组中数据元素类型应当是同一类型数据元素。 19.波形图表显示的图形是实时、逐点地显示出来被测物理量的变化趋势。20.二维数组的数据索引是两个数。 21.簇框架中添加元素不能同时包含控件和显示件。 22.分支结构选择端子的数据类型必须与选择器标签的数据类型一致。

23.数组的长度在运行时不可以自由改变。 24.局部变量只能在同一个程序内部使用。 1、总线类型:(1)串口:串行通信中发送方通过一条通信线,一次一个字节地把数据传送都接收方;(2)GPIB所有字节都是通过总线顺序传送,传送速度由最慢部分决定;(3)VXI:具有小型便携、高速数据传输、模块式结构、系统组建灵活;(4)PXI:速度快、可与PCI总线兼容。 2、虚拟仪器的(1)核心概念:软件就是仪器 (2)概念:是一种功能意义上的仪器,它充分利用计算机系统强大的数据处理能力,在基本硬件的支持下,利用软件完成数据的采集、控制、数据分析和处理以及测试结果的显示等,通过硬件的配合来实现传统仪器的各种功能,大大突破传统仪器在数据处理、显示、传送、存储等方面的限制,使用户可以方便的对仪器进行维护、扩展和升级。 (3)简称:VI 3、Labview是一种图形化的语言,采用数据流编程方式,简单描述:程序框图中节点之间的数据流向决定了VI及函数的执行顺序。 4、属性节点:是控件实例的映射。通过改变前面板对象属性节点中的属性值,可以在程序运行中动态地改变前面板对象的属性。 5、数据类型:数值型、布尔型、枚举型、字符串型、图表型、图形型、簇型 6、数学运算:加减乘除、开方、绝对值、累加、累乘、积分、微分、求导

LabVIEW程序的内存优化1

LabVIEW 程序的内存优化 1 一. VI 在内存中的结构 打开一个VI的属性面板(VI Properties),其中的“内存使用”(Memory Usage)是用来查看这个VI内存占用情况的。它显示了一个VI内存占用所包含的四个主要部分:前面板、框图、代码和数据,以及这四个部分的总和。但在打开一个VI时,这四段内容并不是同时都会被LabVIEW调入内存的。 当我们打开一个主VI时,主VI连同它的所有子VI的代码和数据段都会被调入内存。由于主VI的前面板一般情况下是打开的,它的前面板也就同时被调入内存。但是此时主VI的框图和子VI的前面板、框图并没有被调入内存。只有当主动查看主VI的框图或是打开子VI的前面板和框图时,它们才会被调入。 基于LabVIEW的这种内存管理的特性,我们在编写VI的时候可以通过以下方法来优化LabVIEW程序的内存使用。 第一,把一个复杂VI分解为数个子VI。子VI的使用会增添额外的前面板和框图的空间,但并不增添额外的代码和数据空间。由于程序运行时只有代码和数据被调入内存,因此使用子VI不会占用额外的内存。使用子VI的好处还在于当子VI运行结束时,LabVIEW可以及时收回子VI的数据空间,从而改善了内存的使用效率。 第二,在没有必要时不要设置子VI的重入(Reentrant)属性。重入型VI每次运行时都会对自己使用的数据生成一个副本,这增加了内存开销。 第三,主VI的面板通常就是用户界面,需要显示给用户。但是要尽量避免开启子VI前面板。比如,在子VI中使用与其前面板控件有关的属性节点(Property Node)会导致它的前面板被调入内存中,增加了内存开销,所以要尽量避免在子VI中使用主面板控件的属性节点来设置控件的值,而可以用局部变量等方法来替代。 第四,我们可以放心地在VI 的前面板(对于非界面VI)和框图里添加图片,注释等信息来帮助你编写、维护LabVIEW程序,这些帮助信息不会在VI运行时占用内存。 二. 内存泄漏。 LabVIEW与C语言不同,它没有任何分配或释放内存的语句,LabVIEW可以自动管理内存,在适当的时候分配或收回内存资源[1]。这样就避免了C语言中常见的因为内存管理语句使用不当而引起的内存泄漏。 在LabVIEW中一般只有一种情况能够引起内存泄漏,即你打开了某些资源,却忘记了关闭它们。比如,在对文件操作时,我们需要先打开这个文件,返回它的句柄。随后如果忘记了关闭这个句柄,它所占用的内存就始终不会被释放,从而产生内存泄漏。LabVIEW中其它带有打开句柄的函数或VI也会引起同样的问题。 由于内存泄漏是动态产生的,我们无法通过VI的属性面板来查看,但可以通过Windows自带的任务管理工具来查看LabVIEW程序内存是否有泄漏。也可以使用LabVIEW的Profile (Tools>>Advanced>>Profile VIs)工具来查看某个VI运行时内存的分配情况。 三. 缓存重用 LabVIEW程序主要是数据流驱动型的。数据传递到不同节点时往往需要复制一个副本。这是LabVIEW 为了防止数据被节点改变引起错误所做的一种数据保护措施。只有当目标节点为只读节点,不可能对输入数据作任何更改时,才不在这些节点处做备份。例如,数组索引节点(Index)是不会改变数组值的,LabVIEW 在这里就不为输入数组做备份。对于加减法运算等肯定改变输入数据的节点,LabVIEW往往需要对输入或输出数据作备份。有些LabVIEW程序,比如涉及到大数组运算的程序,内存消耗极大。其主要原因就是LabVIEW在运算时为数组数据生成了过多的副本。

LabVIEW自动弹窗函数设计

龙源期刊网 https://www.sodocs.net/doc/4113397634.html, LabVIEW自动弹窗函数设计 作者:首家辉 来源:《软件导刊》2016年第02期 摘要摘要:在LabVIEW编程过程中利用VI Server控制方法,调用并设置各种对象属性,对弹窗功能函数进行优化,最后打包成一个完整功能的子VI,使其适用于LabVIEW编程的大部分应用场合。在使用过程中只需将弹窗子VI放在需要实现弹窗功能的VI中进行调用,即可实现窗口界面大小、面板弹出方式及窗口标题的灵活设定。 关键词关键词:LabVIEW图形化编程;VI Server;属性节点;弹窗功能 DOIDOI:10.11907/rjdk.161145 中图分类号:TP301 文献标识码:A文章编号文章编号:16727800(2016)002002703 0引言 在LabVIEW图形化编程过程中,通常希望程序运行到某个阶段时能自动弹出某个预设窗口,比如参数设置、波形显示及其它类型的人机交互界面。一直以来,消息弹窗功能的实现通常有以下两种方式,一是直接对需要弹窗的VI进行属性设置,即在File>>VI Properties选项中进行设置,这种方式基本能满足要求,但是设置比较繁琐,很多属性的功能不直观,并且针对每个不同的VI均需要进行相应的操作,使用起来非常麻烦;第二种方法是通过调用简单的消息控件来实现弹窗功能,这种方式使用简单,但是无法对弹出窗口面板进行编辑,更不能在弹出的窗口中增加控件,很难满足实际设计需求。通过对VI Server控制方法的灵活运用,可以实现各种预设窗口的弹窗动作,并且可以灵活地移植到其它需要弹窗的功能VI中。 1VI Server技术简介 VI Server技术就是用LabVIEW实现程序控制功能的方法。LabVIEW是一个对象(Object)导向的编程语言,对象的属性可以用Property Node来控制。在LabVIEW编程环境中,可以将VI看作是一个对象,用对象属性(Property)和方法(Method)对VI进行控制,实际上就是通过Property Node与Invoke Node实现VI及控件的控制,比如用Property Node方法改变字符串数据的字体颜色、字体大小属性,用Invoke Node实现字符串数据的Front Panel 图案输出。如图1所示,在LabVIEW编程环境下的Programming>>Application Control选单中可以找到VI Server技术的常用节点。 应用VI Server技术时,是使用Open VI Reference或Open Application Reference来打开对象。这意味着VI Server除了可以控制VI之外,也可以控制应用程序。然后可以使用Property

LabVIEW开发者必备技巧宝典第四部分

Power by 电子发烧友论坛LabVIEW 开发者必备技巧宝典 第四部分 LabVIEW 开发者必备技巧宝典由电子发烧友网论坛出品,集结众多大牛、工程师的经验之作。为广大LabVIEW 开发工程师提供开发、调试技巧,助力LabVIEW 工程师。

目录 【测试之王LabVIEW】Default的陷阱 (2) 【测试之王LabVIEW】轻松实现任意格式字符串到时间戳的转化 (3) 【测试之王LabVIEW】修改菜单前景、背景颜色 (4) 【测试之王LabVIEW】VI的本地化 (5) 【测试之王LabVIEW】如何拆分双精度数的整数部分和小数部分 (7) 【测试之王LabVIEW】LabVIEW与有道词典的BUG (8) 【测试之王LabVIEW】如何在前面板制作一个浮动的控件 (9) 【测试之王LabVIEW】如何用LabVIEW关闭Windows下的应用程序 (10) 【测试之王LabVIEW】解析LabVIEW布尔控件的6个机械动作属性 (15) 【测试之王LabVIEW】自己写的数字信号包络检波 (17)

【测试之王LabVIEW】Default的陷阱 先贴上一张图 大家可以照着拉拉看程序 执行看看结果有甚么不一样 因为For Loop最少执行次数是0次 所以可以不执行内部的code 以至于输出的值会变成Default 所以并不是99 这个情形我是发生在以Array Index来当作循环次数 结果Array是空Array 所以并没有执行For Loop 造成程序执行错误

【测试之王LabVIEW】轻松实现任意格式字符串到时间戳的转化 以前经常因为用到数据库,要做字符串和时间戳的转换,尤其是字符串转换为时间戳的,想当头疼。但自从有了下面的这个簇,转换便得很easy了:通过格式化字符串输入,可以获取日期时间中的任意一项,然后重新填充簇就可以了,是不是so easy呢?代码也附上了,8.2版的。

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

LV Nugget 之如何创建通用属性节点和调用节点
2011-01-01 07:34
https://www.sodocs.net/doc/4113397634.html,/csxcs366/blog/10-12/201447_993ee.html 这篇文章中我谈到了创建通用引用的两个简便方法。 我们创建通用引用的目的是通过通用引 用的属性节点和方法节点等修改引用所指向的对象。 这与我们直接创建前面板中控件的引用 的目的是一样的。
我们必须注意,LV 中的数据都是以输入控件、显示控件和常量的方式存在的,通用控件的 引用本身也是一种特殊的控件,这导致了许多初学者在使用通用引用时出现了问题。 NI 论坛上有几个帖子就出现了这样的问题,我简单了回答了一下,但是网友无法理解,发 邮件希望我给解答一下,在这里我一并回答这个问题。 帖子地址为: https://www.sodocs.net/doc/4113397634.html,/t5/NI-LabVIEW-CVI-数据采集等产品讨论区/两个难题-关于显 示数据和调用节点/td-p/1398578
对于前面板中的控件,可以直接通过控件的快捷菜单创建它的引用、属性节点、调用节点、 常量、局部变量等等,以多列列表框为例,直接利用控件的快捷菜单。
在程序框图中的控件的接线端子中, 同样可以利用接线端子的快捷菜单, 创建指向控件的引 用、属性节点等,与控件的快捷菜单功能是相同的。

我们知道,对于前面板中的控件,直接创建它的属性节点和调用节点时,是不需要连接引用 的,这是因为我们通过快捷菜单创建时候,LV 自然知道创建的属性节点和调用节点是指向 这个特殊控件的。 实际上,我们也可以通过控件的引用,间接创建这个控件的属性节点和调用节点,在应用控 制函数选板中提供了很多与引用有关的操作,包括属性节点和调用节点。
箭头所示的属性节点和调用节点在使用时候必须连接控件的引用, 也就是说这里的属性节点 和调用节点是通用的,不指向任何特定控件的,只有连接一个引用的时候,它才会指向一个 特定的控件或者特定的控件类型, 指向特定的控件如下图所示, 指向特定的控件类型则是我 们将要重点讨论的。

labview的深入探索------什么是“节点“

labview的深入探索------什么是“节点“ 即便是用了LV 多年,有些基本概念还是非常模糊的,比如”节点”和”函数”(NODE AND FUNCTION),我们称LV 本身提供的函数为节点,或者节点函数,那自己做的子VI 被调用时算不算节点,它内部包含的下一级别的子VI 是不是节点那?控件是不是节点?装饰是不是节点?程序的结构比如顺序结构、循环结构是否是节点那?LV 经常用节点的数量来统计VI 的性能,所以了解节点的真正含义是非常有必要的。首先看看帮助文件对节点的定义:节点是程序框图上的对象,带有输入输出端,在VI 运行时进行运算。节点类似于文本编程语言中的语句、运算符、函数和子程序。LabVIEW 有以下类型的节点: 函数-内置的执行元素,相当于操作符、函数或语句。子VI-用于另一个 VI 程序框图上的VI,相当于子程序。Express VI-协助常规测量任务的子VI。Express VI 是在配置对话框中配置的。结构-执行控制元素,如For 循环、While 循环、条件结构、平铺式和层叠式顺序结构、定时结构和事件结构。公 式节点和表达式节点-公式节点是可以直接向程序框图输入方程的结构,其大小可以调节。表达式节点是用于计算含有单变量表达式或方程的结构。属性节点和调用节点-属性节点是用于设置或寻找类的属性的结构。调用节点是设置对象执行方式的结构。通过引用节点调用-用于调用动态加载的VI 的结构。 调用库函数节点-调用大多数标准库或DLL 的结构。代码接口节点(CIN)-调 用以文本编程语言所编写的代码的结构。这里函数的概念本身就不好理解,内置的执行元素,加减运算符号算一个节点,一个文件操作函数内部包含大量的子函数或者子VI,也是一个节点?我们自己制作的VI 称作子VI,它可以理解成函数吗?从分类上看显然不是,那它到底有那些不同那?显然,两个输入控件+一个显示控件+运算符号共四个节点,前面板的装饰当然也是控件,因为我们可以得到它的

labview深入探索xcontrol

labview深入探索----xcontrol control是LABVIEW8.x新增的功能,LV中的CONTROL我们是再熟悉不过了,这个"X"到底代表什么那,到NI网站上也没找到它的英文定义,可能相当与ACTIVEX中的"X"?虽然无法弄清楚它的定义,但是它的作用是清楚的,我个人理解它更象VC中MFC的控件自画,也具备了一些ACTIVEX的能力,与ACTIVEX的最大区别是ACTIVEX是独立于平台的,可用于各种编程环境,从这点来说,可以把它看做LV内部的activex,MFC 中的控件自画是这样的,当我们要做一个特殊形状的控件时,可以设置它的一个属性是自画,own draw,也就是说,这个控件是用户自己画出来的,比如一个按钮,当鼠标进入它的控制区域,会自动显示凸起状态,还可以自动改变颜色,IE菜单就是这样,当鼠标移入的时候,背景色自动变成兰色,离开后,又自动恢复,实际上,它是在响应两个事件,MOUSE_ENTER 和MOUSE_LEAVE事件. 在xcontrol出现以前,我们也可以对一个控件通过属性节点和事件结构实现这种动态变化,但是有着本质的区别,xcontrol通过事件结构判断事件,利用属性节点改变其显示方式是完全在内部实现的,因此它是可以重用的,从使用方法上它和LV一般的控件没有任何区别,我们完全可以把它看成LV又给我们提供了新的控件,我的文章里多次提到AE的概念,有了XCONTROL,我们不但可以保存数据,而且有了显示的能力,所以说,对于基于组件编程的LV,能力有了很大的提高. 虽然xcontrol是一个新增的特性,但是它的制作方法实际上我们或多或少地都涉及到了,这就使得制作XCONTROL变得相对容易了.

试谈LabVIEW程序的内存优

LabVIEW 程序的内存优化1 一. VI 在内存中的结构 打开一个VI的属性面板(VI Properties),其中的“内存使用”(Memory Usage)是用来查看这个VI内存占用情况的。它显示了一个VI内存占用所包含的四个主要部分:前面板、框图、代码和数据,以及这四个部分的总和。但在打开一个VI时,这四段内容并不是同时都会被LabVIEW调入内存的。 当我们打开一个主VI时,主VI连同它的所有子VI的代码和数据段都会被调入内存。由于主VI的前面板一般情况下是打开的,它的前面板也就同时被调入内存。但是此时主VI的框图和子VI的前面板、框图并没有被调入内存。只有当主动查看主VI的框图或是打开子VI的前面板和框图时,它们才会被调入。 基于LabVIEW的这种内存经管的特性,我们在编写VI的时候可以通过以下方法来优化LabVIEW程序的内存使用。 第一,把一个复杂VI分解为数个子VI。子VI的使用会增添额外的前面板和框图的空间,但并不增添额外的代码和数据空间。由于程序运行时只有代码和数据被调入内存,因此使用子VI不会占用额外的内存。使用子VI的好处还在于当子VI运行结束时,LabVIEW可以及时收回子VI的数据空间,从而改善了内存的使用效率。 第二,在没有必要时不要设置子VI的重入(Reentrant)属性。重入型VI每次运行时都会对自己使用的数据生成一个副本,这增加了内存开销。 第三,主VI的面板通常就是用户界面,需要显示给用户。但是要尽量避免开启子VI前面板。比如,在子VI中使用与其前面板控件有关的属性节点(Property Node)会导致它的前面板被调入内存中,增加了内存开销,所以要尽量避免在子VI中使用主面板控件的属性节点来设置控件的值,而可以用局部变量等方法来

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语言中的局部变量更加接近于移位寄存器。而labview中的局部变量只是将控件的值重新复制了一份而后调用它。

把LabVIEW前面板控件当前值通过程序设为下次打开时的默认值

如何把LabVIEW前面板控件当前值通过程序设为下次打开时的默认值? 回答=在LabVIEW 7.1下,有如下方法: 方法1. 如果手动操作,可如下设置前面板控件当前值为默认值:对控件点击鼠标右键>>Data Operations>>Make Current Value Default。 方法2. 通过通过文件或注册表等方式先把控件当前值存下来,在下次打开时再从文件或注册表把值读回来。 方法3. 使用VI Server技术在保存控件当前值为默认值,但这种方法只能处于编辑状态的时候使用,在生成可执行文件后不能使用,主要需要如下操作: (1)使用VI Server技术,调用Invoke Noke设VI的Edit Mode值为TRUE, (2)调用Invoke Noke设VI为Make Current Values Default, (3)调用Invoke Noke设Save Instrument的Path to saved file为需要设置默认值的VI路径。 6.1 属性节点和调用(方法)节点 属性是VI、对象或应用程序的特性。属性节点被用于获取及设置VI、对象或应用程序的属性。 方法是VI、对象或应用程序的操作。调用节点被用于在VI、对象或应用程序上执行操作(方法)。 6.1.1 创建属性节点和调用节点 创建属性节点和调用节点的方法很简单。在程序框图中,鼠标右键单击空白处,在弹出的快捷菜单中选择: 》函数 》编程 》应用程序控制 将属性节点或调用节点拖拽到程序框图中即可,结果参见下图。 图 6-2 放置在程序框图上的属性节点和调用节点 此时放置在程序框图上的属性节点和调用节点是默认状态下隶属于应用程序(App)的节点。上图中这些节点没选择属性和方法还不能正常使用(程序运行箭头断裂——标志编译没有通过)。 在实际的使用中,属性节点和调用节点往往还需要配置引用(后面将介绍)和错误簇的连接。实际应用情况参见下图。 图 6-3 带有引用和错误簇的属性节点和调用节点

相关主题