局部变量的使用只需要将上图中的局部变量拖到程序框图中,就可以和前面板的控件建立联系,很方便的就可以使用。但是全局变量拖到程序框图却无法直接使用。在labVIEW中,全局变量实际上是一个特殊的VI,它只有前面板,而没有程序框图(也就是说不能编程)。因此在使用全局变量前要先建立全局变量,有两种步骤,一就是上面提到的拖动全局变量到程序框图,然后双击拖过来的变量,会打开一个VI,就是它的前面板。还有一种就是在文件——新建——全局变量同样会打开一个VI的前面板,如下图:
然后就可以在这个前面板中放置想要的控件了(不同的控件代表不同的数据类型),放置好之后保存这个VI,记住保存的路径,这样全局变量就建好了,如下图:
然后就可以在不同的VI中使用全局变量传递数据了,具体方法是在程序框图中右键——选择VI,然后选择上面保存的全局变量VI(和插入子VI的方法一样,可以下不同的VI中多次插入),这样就插入了一个全局变量,一般全局变量默认的是读取操作,可以在全局变量上右键——转换为写入来改变(同理也可以变写入为读取,不同操作的接线端的位置不同),还有,默认的变量是全局变量VI中前面板的第一个控件,可以单击全局变量选择之前放置的其它控件(也就是不同的变量),如下图:
到这里全局变量的使用就已经说完了,上面只列举了数值、字符串和布尔三种数据类型的全局变量,其它的数据类型只需要在全局变量VI前面板中放置对应的控件就可以,也可以放置簇和自定义控件。此外一般在大型项目中,当全局变量比较多时,会为不同类的全局变量建立不同的全局变量VI,这样在使用的时候就更清晰了。
接下来简单说一下功能全局变量,上面说到的全局变量实际上是一种特殊的VI,而这里说的功能全局变量实际上就是普通的VI,通过调用子VI的方法实现全局变量的功能。我查到的建立功能全局变量的方法有两种,一种是通过带有移位寄存器的只循环一次的While循环实现,另一种是通过反馈节点实现。两种方法具体如下图:
上图是用第一种方法建立的子VI,枚举控件Ac[color=rgb(68, 68, 68) !important]tion允许“初始化”、“写入”、“读取”三种操作,输入和输出这里定义的是字符串,此外程序框图中红圈所示,循环的结束条件和一个真值的布尔常量连接,也就是调用这个VI时While循环只循环一次。然后给子VI添加输入和输出接线端(在前面板右上角),然后保存VI。 下图是另一种方法,用到了反馈节点,不用While循环,如图:
提前写好子VI之后,就可以像使用全局变量一样使用功能全局变量了,如下图:
好了,功能全局变量基本就说完了,事实上,上面只实现了字符串格式的数据共享,要实现其他数据类型,可以像上面一样创建相应的子VI,只需要改变输入输出的数据类型,还有一种方法是将数据转换为变体类型的格式进行传递。此外由于功能全局变量可以编程,因此可以在子VI中进行一些计算和编程,实现一些特殊的功能,我想,这也是它为什么被叫做功能全局变量的原因吧。
以上内容是自己学习过程中的总结,有不正确的地方,欢迎大家指点和交流。