Labview之如何创建通用属性节点和调用节点Word文档格式.docx
- 文档编号:18991017
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:13
- 大小:378.48KB
Labview之如何创建通用属性节点和调用节点Word文档格式.docx
《Labview之如何创建通用属性节点和调用节点Word文档格式.docx》由会员分享,可在线阅读,更多相关《Labview之如何创建通用属性节点和调用节点Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
我们知道,对于前面板中的控件,直接创建它的属性节点和调用节点时,是不需要连接引用的,这是因为我们通过快捷菜单创建时候,LV自然知道创建的属性节点和调用节点是指向这个特殊控件的。
实际上,我们也可以通过控件的引用,间接创建这个控件的属性节点和调用节点,在应用控制函数选板中提供了很多与引用有关的操作,包括属性节点和调用节点。
箭头所示的属性节点和调用节点在使用时候必须连接控件的引用,也就是说这里的属性节点和调用节点是通用的,不指向任何特定控件的,只有连接一个引用的时候,它才会指向一个特定的控件或者特定的控件类型,指向特定的控件如下图所示,指向特定的控件类型则是我们将要重点讨论的。
红色框中所示的就是利用控件的引用和通用属性节点和方法节点,实现的功能是和框图左侧部分相同的。
如上图所示,如果简单的要使用控件的属性节点和方法节点,那么利用通用属性和通用调用方法似乎是没有意义的。
的确是这样,通用属性节点和调用方法更为重要的意义在于它和通用控件引用相结合。
请参考上面的帖子,为什么网友会出现那样的问题?
从上面的图中,我们可以看出,网友已经成功地床架的多列列表框控件的引用。
我们应该注意,这个控件引用在前面板上本身也是一个控件,所以网友通过这个控件的快捷菜单创建的调用节点是直接指向前面板中的控件的,这不是我们希望的。
这样实际创建的控件的引用的控件的调用方法,我们需要的是控件的引用的调用方法。
这有点类似于创建了C语言中指针的指针。
因此在上面的快捷菜单中我们看不到列表框的属性和方法。
下面就是我们这个Nugget的内容。
通过通用控件引用,创建属性节点和调用节点的方法.
1、对于通用控件,前面板中控件的快捷菜单和接线端子的快捷菜单是不同的。
我们这里创建的指向特定控件类型的属性和方法,但是并非指向特定控件的,只有在主VI中传递了一个列表框的引用,此时才会真正指向一个特定的控件。
2、第二种方法就是直接利用引用程序控制函数选板中的通用属性和通用调用节点。
---------------------------------------------------------------------------------------------
顺便解答一下网友的另外两个问题:
快速表格控件在添加方式时,自动重置应设置为FALSE,只有把它放在WHILE连续运行时,才能看到添加效果。
单次运行无所谓添加。
如果要操作EXCEL文件,应该使用报表生成工具包,它实际上是利用自动化服务器技术,封装了其中的细节,当然我们也可以直接利用ActiveX技术,但是要求必须熟悉EXECL自动化服务器。
高老师评论:
是否可以这样说:
在控件所属的vi中,使用属性、方法节点不需要创建引用;
而在子vi中如果需要向该控件传值,则必须使用该控件的引用
控件的引用与引用控件的确理解起来很困难,用语言描述经常会出现误解。
今天我们首先明确控件的引用和引用控件这两个不同的概念。
一、已链接控件的引用、属性节点、方法节点与未链接的控件的引用、属性节点和方法节点
1、已链接控件的引用、属性和方法。
对于前面板中创建的控件,通过控件的快捷菜单创建的控件的引用、属性和方法,我们称他们为已链接控件的引用、属性和方法。
对于已连接控件的引用、属性和方法,我们知道它们已经指向一个特定的控件,这样的引用、属性和方法是不能随意更改它们的指向的。
图中,高老师和CSXCS_366数字控件分别各自创建了引用和属性节点。
高老师的引用是指向高老师数字控件的。
高老师的可见属性也是指向高老师数字控件的。
我们称高老师引用和高老师属性已链接到高老师控件。
由于各自指向(链接)到不同的控件,所以对高老师的引用、属性和方法的操作是针对高老师控件的,绝对不会影响到CSXCS_366控件。
从上图看高老师的说法是正确的
2、未链接控件的引用、属性和方法
我过去的文章中称未链接控件的引用、属性和方法为通用引用、属性和方法,这里采用未链接控件的引用、属性和方法,更容易区分已链接控件的引用、属性和方法。
由于LV中文版出现的很晚,即使现在中文帮助文件中,很多翻译方法很难反映原来的意思,这也造成我们沟通理解的困难。
所以我们能理解清楚,我特意强调了这两个概念的不同。
在上图中,高老师数字控件和CSXCS_366数字控件,所代表的数值类型是完全一致的,具有很多共同的属性、方法。
-------------------------------------------------------------------------------------------------
二、为什么要用未链接控件的属性节点和方法节点?
假设我们要解决下面的问题,将高老师输入控件和CSXCS_366控件修改为显示控件,这两个控件用来显示随机数,当随机数大于0.7时,控件闪烁。
首先我们在一个主VI中解决这个问题。
上图中我们使用两个属性节点,分别是已链接到控件的闪烁属性,假设我们有很多的这样的随机数显示,那么按照上图中的编程方法,将会有大量的重复工作。
首先我们考虑如何能消除多个同样性能的闪烁属性节点,自然我们会考虑,避免大量重复工作最好的办法是FOR循环。
我们设想在FOR循环中只放置一个闪烁的属性节点,很显然循环中是不能放置已链接的控件属性节点,因为那样只会多次修改同一个控件。
所以循环中要放置一个为链接控件的闪烁属性节点,然后利用高老师和CSXCS_366显示控件的引用来调用这个未链接的属性节点。
假设我们有100个显示随机数的控件,那么之需要创建100个控件的引用,把这些引用创建成数组,FOR循环中不需要任何改动。
从上图中我们可以知道,对于已链接控件的属性节点,在运行过程中是无法再次链接到其它同类型的控件中。
而未连接(通用)属性节点可以在运行中通过不同的控件引用,动态链接到其它同类型的控件中,这是我们使用未链接控件属性节点关键所在。
从上图看高老师的说法有局限性,在控件所属VI中,也可能需要创建引用来使用属性、方法节点。
三、为什么要用为链接控件的引用(通用引用)
任何编程软件都强调模块化的重要性,为了简化上图中的程序框图,我们希望把上图中的FOR循环容封装在一个子VI中。
主VI的程序框图简化为:
下面我们增加一个“李老师”显示控件,子VI不需要任何改动。
程序框图和运行效果图如下所示:
从上面两个程序框图中,我们可以领会到这个子VI功能是非常强大的,子VI是如何实现的那?
下图是子VI的前面板和程序框图。
子VI的输入端子为未链接的数字控件引用数组,输出为双精度数组。
我们通过未链接控件的引用成功地操作了调用VI中的三个数字控件:
高老师、李老师、CSXCS_366.
高老师实际的意思应该是这样的,如果在“在子VI中操作主VI中的控件,则必须使用该控件的引用”,高老师的这个说法是完全正确的。
LV有关引用有几个重要的特点:
1、数据流意味着是传值方式而不是传引用(地址)方式,在C语言中,值传递和引用传递都是支持的。
2、链接到特定控件的引用代表一个地址,因此同一控件的多个引用,它们的值(地址)肯定是相同的。
3、未链接到特定控件的引用(通用引用),它的值为0,相当于C语言中空指针。
4、运行时,未链接到特定控件的引用可以指向同类型(严格类型)的特定控件。
引用无处不在,应用程序引用、VI引用、窗格引用、控件引用,如果我们获得了一个控件的引用,我们就可以控制这个控件的一切。
如果在控件所属VI中控制这个控件,我们自然不需要未链接控件的引用,但是如果需要在子VI中控制,则必须在主VI中先获取这个控件的引用,并把这个引用(地址值)按照值传递的方式传递到子VI中,这样子VI直接获得的是主VI中控件的引用(地址值)。
不管我们使用了LV多长时间,总是有很多地方我们没有看到的,这几天我的几篇文章讨论的都是已链接控件的引用和未链接控件的引用以及属性节点和方法节点等等。
直至今天我才发现LV给我们提供了更好的方法来创建未链接控件的属性节点和方法节点。
还是以多列列表框为例:
多列列表属性节点的快捷菜单中,断开链接控件,则已链接控件的属性节点转换为严格类型的未链接控件的属性节点,方法节点(调用节点),也是如此。
反之,对于未链接控件的属性节点,通过“链接至”,可以链接到前面板中的对应控件,变成已链接控件。
通过未链接控件的属性节点的快捷菜单,创建输入控件,则会自动创建一个通用控件的引用.
LVNugget之如何使LV的执行文件同时运行多个实例
2011-01-0106:
03
加入收藏
∙
转发分享
人人网
开心网
新浪微博
搜狐博客
XX收藏
谷歌收藏
qq书签
豆瓣
淘江湖
Digg
Yahoo!
Bookmarks
WINDOWS下的很多执行文件都是可以运行多个实例的,比如操作系统自带计算器,可以同时多次运行,互相不影响。
VC编程中,关于执行文件单个实例、多个实例以及各个实例之间的相互关系是很常见的,但是LABVIEW生成的执行文件默认是单实例的,也就是说,我们不能通过多次双击执行文件名称来多次运行这个执行文件。
如果多次运行这个执行文件,一般会自动将已经启动的实例的运行主窗口置于最前面。
LABVIEW默认运行单实例是非常合理的选择,我们知道,LV创建的程序一般是与硬件相关的,往往硬件的唯一性是不允许多个用户同时访问的,为防止多个用户同时操作同一硬件设备,因此LABVIWE选择了只允许创建单一实例。
虽然LABVIEW默认是单实例的,但是实际上通过修改INI文件是可以创建多实例的,具体步骤如下:
∙创建LabVIEW可执行档
∙运行该执行档一次,可以看到一个ini的配置文件在和可执行档同样的目录下被创建了
∙关闭可执行档,并打开该ini配置文件
∙将下面的语句添加到ini文件的[]语句之下,是你的可执行档的名字allowmultipleinstances=TRUE
∙保存并关闭可执行档
∙现在你可以同时运行多个实例
∙
经常有朋友谈到控件的特殊效果如何制作的问题.LABVIEW中目前常用三种办法,利用属性节点,自定义控件和XCONTROL.
今天是用属性节点实现Multilistbox的特殊效果.
默认的控件形式如下图所示
改变后的效果如下图所示,可以自由定义相邻行的颜色,可以自由定义相邻行的字体颜色,其他特性,修改一下就可以了,原理是相同的.
设计方法如框图所示.
动态调用的VI和当前VI在同一目录下,有一下几种路径设定方法:
(1)基本方法:
(2)相对当前路径..\表示当前路径
(1)
(2)的方法对打开任何文件都有效
(3)最简单打开VI参考的方法,仅适用于OPENVIREFERENCE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Labview 如何 创建 通用 属性 节点 调用