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解包。
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中使用的接线端包括输入控件和显示控件接线端、节点接线端、常量及用于各种结构的接线端。
连线则把接线端连接起来,使数据在接线端间传递。
右键单击一个程序框图对象,从快捷菜单中选择显示项»接线端可查看接线端。
再次右键单击该对象,从快捷菜单中选择显示项»接线端可隐藏接线端。
该快捷菜单项对于可扩展VI和函数不可用。
浮点数据的符号数值如数据未定义或数据是非预期数据,会影响后续操作。
浮点数据操作返回以下两种符号值用以表明错误的计算或无意义的结果:∙NaN(非法数字)表示无效操作所产生的浮点值,如对负数取平方根。
∙Inf(无穷)表示超出某数据类型值域的浮点数值。
例如,1被0除时产生Inf。
LabVIEW可返回+Inf或-Inf。
LabVIEW不检查整数的上溢或下溢条件。
浮点数的上溢和下溢符合IEEE 754浮点数算术标准。
浮点运算能可靠地传送NaN和Inf。
而整数和定点数不支持符号数值。
将+Inf转换为整数或定点数时,其值变为该数据类型的最大值。
例如,将+Inf转换为16位有符号整数的结果为32,767(16位有符号整数能表示的最大值)。
LabVIEW将-Inf转换为该数据类型的最小值。
将NaN显式或隐式转换为整数或定点数时,其值将变为目标数据类型的最大值。
在将数据转换为整数或定点数据类型前,可先用探针工具查看中间浮点数值是否有效。
LabView 第六章 结构与属性--For循环
结构(Structure)
结构是控制 G程序数据流程的元素, G语 言包含有5种结构: While loop结构 For Loop结构 Case结构 Sequence(顺序)结构 公式节点 事件结构
结构的选取
For循环(For Loop)
将某程序段重复执行预先设定的次数。 组成:循环框架(Loop Frame)、重复端 口(Loop Iteration)、计数端口(Loop Count)。
或While循环 框架内
例6.1.2 求n!
例6.1.2 求0到99的偶数
数组(Array)
当有一串数据需要处理→数组→一维、二维
(少)、三维(极少)。
组成:数据索引、数据、数据类型(隐含)
数组的建立
多维数组的建立
用For循环产生一个长度为5的随机数组
求一个一维数组中所有元素的和
For自动索引 功能(Auto Inde的 循环之间传递数据,其功能是将上一次 循环的值传给下一次循环。
注意:左侧移位寄存器的初始化(循环前为默认值) 右侧的移位寄存器只能循环结束时输出数据, 一般输入数据。
例6.1.2 求n!
反馈节点(Feedback Node)
可以实现移位寄存器的功能,一个反馈节 点包含:初始化端口(Initializer Terminal)、 反馈节点(Feedback Node)两部分。 必须放在For
For循环显示随机数列
注意:
i的初始值为0,每次循环递增步长为1,且固定不变 办法:重复端口的数据进行运算;移位寄存器。
移位寄存器(Shift Register)
功能:
将第i-1,i-2,i-3…次循环的计算结果保存
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的深入探索------什么是“节点“
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 常见问题及解答
LabView常见问题及解答1、如何用LabView与可编程仪器通信,该仪器没有GPIB接口,但有COM口,能否用LabView操作?A:可以通过LV的串口通信来解决仪器控制问题,参看FIND EXAMPLE的BASIC2PORT SERIAL WRITE AND READ.VI2、如何将EVENTSTRUCT中捕获的时间传递到STATE DIAGRAM?A:使用VENTSTRUCT捕获面板事件后,将不同的事件对应于不同的字符串和其他,再通过QUEUE将VENTSTRUCT中的字符串传递到STATEDIAGRAM中,再根据得到的字符串进行相应的处理。
3、使用WRITE TO BINARY FILE函数向二进制文件中写入一个1D数组,为什么在READ FROM BIANRY FILE读取时,会多出4个字节数据呢?A:写入时加入了头信息,多出的4个字节就是头信息,代表了数组或字符串的长度。
在WRITE TO BINARY FILE中的APPEND ARRAY OR STING SIZE这个输入端口中设置,其默认值为T,代表加入头信息;如果将其改为F,就不会多出4个字节了。
4、卸载LabView7.1时出现错误1603,接着出现错误1722和1721,程序询问是否继续卸载操作,怎样消除该错误并正确卸载7.1?A:该错误通常出现在试图卸载某些共享组件的时候。
按照以下步骤可以解决该问题。
1)注意当错误发生时是在卸载哪一部分组件。
一般讲在卸载LV核心部分或LV RUNTIME ENGINE的时候容易出现。
2)当出现错误代码1603,弹出对话框提示继续卸载操作时候,点击YES3)如果卸载完成之后提示需要重新启动计算机,点击NO。
4)对于卸载过程中产生的错误,从CD相应的文件夹中手动运行相应的组件,路经如下:\components\lvcorefull\lvcorefull.msi或components\lvruntimeeng\lvruntimeeng.msi点击修复按钮。
LabVIEW属性节点
LabVIEW属性节点
在实际运⽤中,经常需要实时地改变前⾯板上的对象的颜⾊、⼤⼩和是否可见等属性。
那么就需要使⽤属性节点进⾏动态设置。
属性节点有输⼊和输出两种形式(点击右键,在快捷菜单中选择转换为写⼊/输出)
基本属性:
1 可见性visible
数据类型为bool型
2 状态Disabled
在可视状态下,当输⼊0或1 时,⽤户可以访问⾯板上的对象;当输⼊2时,⽤户不可访问对象。
3 焦点状态Key Focus
设置键盘焦点状态数据类型为布尔型
4 闪烁(Blinking)
数据类型为布尔型,对象的闪烁速度和颜⾊,在Vi运⾏状态下,这两种属性值就不能进⾏设置。
设置对象的闪烁速度和颜⾊的⽅法是:在labVIEW主选单⼯具中选择选项,弹出⼀个对话框
5 位置
6 ⼤⼩。
在LabVIEW上编写PLC串口调试程序
在 LabVIEW 上编写 PLC 串口调试程序2007-9-19 9:23:00 来源:中国自动化网 网友评论 2 条 点击查看1. 概述 虚拟仪器代表了今后测试仪器的发展方向,而 LabVIEW 作为虚拟仪器的一种较 为优秀的开发平台,因其编程简单、功能图表丰富及开发环境开发,而得到日益广泛 的应用。
在生产型企业中的典型应用是由 PLC 网络和工控机组成的以 LabVIEW 为开发平 台的生产监控系统。
该系统通过 PLC、LabVIEW 的控制程序和网络通讯功能,实现 生产网络各功能的控制和监控。
因此实现工控机与 PLC 网络的通讯和数据的解析是 实现整个监控系统的基础。
此文中, 介绍了如何通过 LabVIEW 的串口节点和仪器 I/O 助手实现读写松下 FP2 系列的 PLC。
图 1-1 为 PLC 和工控机组成的生产网络的典型架构图,其中各 PLC 以 PC Link 网络的形式通讯。
图 1-1 PC 机与 PLC 组成的典型网络架构图图中 PLC 模块组的各模块单元分别为: a) PW:电源模块 b) CPU:松下 FP2 系列 PLC 控制模块 c) MW:网络通讯单元 MEWNET (Multi-wire link unit) d) SDU:串口通讯单元 Serial data unit e) I/O:输入输出模块2. 串口读写程序的编写 2.1. LabVIEW 中 VISA 节点简介 在 LABVIEW 中用于串行通信的节点实际上是 VISA(Virtual instrument software architecture)节点。
为了方便用户使用,LabVIEW 将这些 VISA 节点单独组成一个子 模块,共包含 6 个节点,分别实现初始化串口、串口写、串口读、中断以及关闭串口 等功能,这些节点位于 Functions 模板/All Functions 子模板/Instrument I/O 子模板、 Serial 子模板中,如下图 2-1 所示。
labview复习重点总结
Labview复习题一、填空1。
所有的LabVIEW 应用程序,即虚拟仪器(VI),它包括前面板、流程图以及图标/连结器三部分。
2。
LabView有三种操作模板,分别是控件模板、函数模板和工具模板。
3。
CIN节点需要调用*.lsb格式文件,这种文件可以通过Visual C++来生成.4。
虚拟仪器设计中连线为虚线时表示数据类型不匹配出错,当RUN按钮显示为折断的箭头时,表示程序有错误发生.5。
在LabView中局部变量主要用于程序内部传递数据,全局变量主要用于程序之间传递数据。
6。
程序框图由端口、节点和连线组成的可执行代码.7、数组是相同类型的数据元素的集合,数据元素的类型可以是任意的,可以创建数值数组、布尔数组、字符数组和簇数组.8、数据采集系统由被测参数→传感器→信号调理→数据采集卡→计算机组成。
9、Labview支持文本文件,二进制文件,数据记录文件,波形文件,测试数据文件等格式的文件输入和输出。
10、数据采集卡性能指标有输入通道数,输出通道数,采集位数,采集速度等。
11、循环边框上的数据出口为一个小方块,称为移位寄存器,具有存贮数据功能,对FOR循环而言第一次循环时布尔型数据出口值为false.12、虚拟仪器在使用数据采集卡之前必须运行专用软件MAX进行配置,如设置通道名,输入输出类型,测量类型等。
13、LabVIEW概念是一种用图标代替文本行创建应用程序的图形化编程语言。
14、传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了程序的执行顺序.它用图标表示函数,用连线表示数据流向。
15、LabVIEW程序为称为VI,扩展名默认为.vi。
16、程序框图是图形化源代码的集合,这种图形化的编程语言也称为G语言.17、虚拟仪器系统是由计算机、应用软件和仪器硬件三大要素构成的。
计算机与仪器硬件又称为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语言中的局部变量更加接近于移位寄存器。
- 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中。