新闻中心

EEPW首页>测试测量>设计应用> LABVIEW的深入探索之已链接控件引用与未链接控件引用

LABVIEW的深入探索之已链接控件引用与未链接控件引用

作者: 时间:2017-01-09 来源:网络 收藏

是否可以这样说:在控件所属的vi中,使用属性、方法节点不需要创建引用;

从上图看高老师的说法有局限性,在控件所属VI中,也可能需要创建引用来使用属性、方法节点。

三、为什么要用为链接控件的引用(通用引用)

任何编程软件都强调模块化的重要性,为了简化上图中的程序框图,我们希望把上图中的FOR循环容封装在一个子VI中。

主VI的程序框图简化为:

下面我们增加一个“李老师”显示控件,子VI不需要任何改动。程序框图和运行效果图如下所示:

从上面两个程序框图中,我们可以领会到这个子VI功能是非常强大的,子VI是如何实现的那?下图是子VI的前面板和程序框图。

子VI的输入端子为未链接的数字控件引用数组,输出为双精度数组。我们通过未链接控件的引用成功地操作了调用VI中的三个数字控件:高老师、李老师、CSXCS_366.

而在子vi中如果需要向该控件传值,则必须使用该控件的引用

高老师实际的意思应该是这样的,如果在“在子VI中操作主VI中的控件,则必须使用该控件的引用”,高老师的这个说法是完全正确的。

LV有关引用有几个重要的特点:

1、数据流意味着是传值方式而不是传引用(地址)方式,在C语言中,值传递和引用传递都是支持的。

2、链接到特定控件的引用代表一个地址,因此同一控件的多个引用,它们的值(地址)肯定是相同的。

3、未链接到特定控件的引用(通用引用),它的值为0,相当于C语言中空指针。

4、运行时,未链接到特定控件的引用可以指向同类型(严格类型)的特定控件。


引用无处不在,应用程序引用、VI引用、窗格引用、控件引用,如果我们获得了一个控件的引用,我们就可以控制这个控件的一切。如果在控件所属VI中控制这个控件,我们自然不需要未链接控件的引用,但是如果需要在子VI中控制,则必须在主VI中先获取这个控件的引用,并把这个引用(地址值)按照值传递的方式传递到子VI中,这样子VI直接获得的是主VI中控件的引用(地址值)。


上一页 1 2 下一页

评论


技术专区

关闭