控件的局部变量和属性
控件与变量的关系
熟悉文本编程语言的用户一定非常熟悉变量这个概念。变量是文本编程语言中一个非常重要的元素,程序所需的数据都存储在变量中。但是,在使用 LabVIEW 语言的时候,必须改变这种观念。
LabVIEW 中并没有与文本编程语言中的变量直接对应的概念。虽然,有一些 其它的对象可以完成文本编程语言中变量的功能。
有过文本编程语言经验,而又初学 LabVIEW 的用户,常常会把 LabVIEW 中的控件当作文本编程语言中的变量:变量是用来保存数据的,而控件中也可以保存数据,所以控件可以当作变量用。这种思维方式在 LabVIEW 编程中,虽然也行得通,但是它并不符合 LabVIEW 最本质的数据流驱动模式。在这种思维方式的指导下,写出来的程序往往代码混乱,不易阅读,容易出错。
控件在 LabVIEW 程序中主要是用来输入输出数据的:一是作为用户界面,与用户交互;二是在子 VI 中用于与上层程序交换数据。子 VI 中的控件的功能就类似于文本编程语言中子函数的输入输出参数或返回值。
那么,在 LabVIEW 中是什么最接近于文本编程语言中的变量呢?那就是数据连线了。在 LabVIEW 程序框图中,数据从某一节点流出,经由数据线,再流入下一节点。暂且不考虑 LabVIEW 内部是如何实现这一机制的,单从编程者的角度直观来看,数据从某节点流出后,暂时保存在一数据线内,再被传递给下一个节点。所以,一条数据线就类似于文本编程语言中一个生命周期极短的变量。从某一子函数返回的数据也保存在数据连线这个变量中,直到把数据传递给下一个函数,这个变量的生命周期也就结束了。
因此,在编写 LabVIEW 代码的时候,遇到一个数据从某节点传出,需要暂时保存一下,留给后续某个节点使用的情况时,先不要考虑给这个数据新建一个控件或者全局变量来保存它,而是应该考虑如何连一条数据线,把数据引出,再传递到需要使用它的那个节点。