LabVIEW基础-lv中的常用数据传递

一、局部变量

局部变量的数据存储在控件中,每个变量都与特定控件相对应。一个控件可有多个局部变量,每个局部变量都要复制对应控件中的数据,于是它消耗的内存更多。另外,对于数据量大的,不易判断数据流的方向,存在“竞争”的问题。不建议使用局部变量给大的数组传值。

二、全局变量

从某全局变量读取数据时将创建一份数据副本,保存于该全局变量中。操作大型数组和字符串的是,将占用大量时间和内存来操作全局变量。另外,在对数组进行操作时,即使只修改数组中的某个元素,LabVIEW仍对整个数组进行保存和修改。如果在不同位置同时读取某个全局变量,那么会创建多个内存缓冲区,导致执行效率和性能降低。不建议在操作数组时使用全局变量。但是局部变量和全局变量是真的方便。

三、功能性全局变量

功能性全局变量以未初始化的移位寄存器保存数据,在数据块中保存或访问,不需要大量内存就可以传输数据。

四、引用

引用句柄即指向指针的指针,其保存内容为指向特定数据类型的地址。引用句柄自身不代表任何空间,通过引用句柄指向特定实例后,才可操作具体控件。通过对引用句柄的操作可以改变控件属性参数。 大概就,引用是给你扔个地址,但是后续操作全都在这个地址所指向的地方进行。不同的循环和VI使用同一个引用,就能改变值,完成值的传递。运行性能较高。

五、属性节点

六、队列

队列是先入先出,能暂停读取方循环的执行,能缓存数据,可以在vi间传递每个数据的一对一传递的个东西。可以存储大量数据,但是占内存不大。访问数据的时候要拆散队列,程序其他部分不能同步访问此数据。在几个地方对这个数据有需求就得有几个队列。

七、通知器

通知器能暂停读取方循环执行,不能缓存数据,会丢包,能被多个循环读取的一对多传递数据的东西。


经验分享 程序员 微信小程序 职场和发展