问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

LabVIEW变量调用详解:从直接赋值到功能全局变量

创作时间:
作者:
@小白创作中心

LabVIEW变量调用详解:从直接赋值到功能全局变量

引用
CSDN
1.
https://blog.csdn.net/Oh_Python/article/details/140447019

LabVIEW是一种图形化编程语言,广泛应用于工业自动化、测试测量等领域。在LabVIEW中,变量调用是程序设计的基础,本文将详细介绍直接赋值/读取、属性节点、局部变量、全局变量和功能全局变量等五种变量调用方式。

变量调用

以下案例皆为控制圆形指示灯亮灭,间隔为500ms。

直接赋值/读取

如下图所示,对圆形指示灯的值取反后赋值给它本身。

在程序框图中,鼠标右键-布尔-非

属性节点

属性节点间赋值。

局部变量

局部变量的作用域是局部的,也就是当前调用它的VI。它是与控件一同存在的,无法单独存在,一个空间可以有不限数量的局部变量,它代表的是空间的值属性,是控件的副本,局部变量的速度比控件的值属性要快。

缺点:可读性差,安全性低,效率相对较低,容易导致数据竞争。

  1. 创建一个圆形指示灯,命名为C。在程序框图中,鼠标右键-结构-局部变量,然后点击局部变量,选择名为C的变量。
  2. 结果:

全局变量

全局变量的作用域不受限制,原因是因为它存储在单独的文件中,全局变量的文件名后缀也是VI,但是它没有程序框图面板,虽然它是用控件来表示的但只能用来存放控件的值,不具备其他控件属性。一个全局变量文件中可以存储多个全局变量。

LabVIEW中的全局变量可以跨VI。

  1. 创建一个LabVIEW项目。
  2. 新建一个VI,命名为test1,然后在前面板中放入数值输入控件字符串输入控件,接着在程序框图中鼠标右键-结构-全局变量
  3. 双击该全局变量,并在其前面板中放入数值输入控件字符串输入控件,即这些控件为全局变量,接着保存VI文件为全局1
  4. 在test1中分别给全局变量中的元素赋值,然后将全局变量中数值控件的数值乘以2,最后再赋值给全局变量中的数值控件。
  5. 再创建一个VI并命名为test2,然后鼠标移动到项目的全局 1.vi位置,将其拖动到test2.vi中即可使用该全局变量。
  6. 将全局变量中的数值再乘以2,观察结果。

功能全局变量

功能全局变量就是一个VI,它是通过一个未初始化的移位寄存器来实现的。

构成:

  • 拥有一个只执行一次的循环结构。
  • 拥有一个条件结构,用来选择数据的相关操作。
  • 若干输入输出控件,用来传递数据。

优点:

  • 可以避免数据的竞争。
  • 可以有效地对内部数据、数据的访问权限进行封装,提高数据的安全性。

案例:创建功能全局变量来存放一个数值

  1. 创建一个VI,在程序框图中放置一个while循环结构,设置移位寄存器,并在while循环结构中放置一个条件结构,然后在前面板中放置一个数值输入控件数值显示控件枚举
  2. 在枚举中分别设置写入读取两个元素。

Tips
:按住
ctrl
键,鼠标移动到枚举控件位置,鼠标单击,即可输入,按住
shfit+enter
,即可输入下一个元素。

  1. 程序框图中枚举控件连接到条件结构,然后在写入这个分支中,将数值输入控件连接到移位寄存器,也就是将数据写入到移位寄存器中;当我们下一次调用这个VI时,为读取的话,就可以重新拿到上一次保存的数值,然后输出。最后保存文件名为FGV(文件名可任意命名)。
  2. 在前面板的右上角有“表格”,这个就是用来封装VI,指定参数的输入和输出,方格代表可以连接的一个参数,位置可以任意选,通常的规则是左进右出。

使用方法:首先点击格子,然后再点击控件,即代表这个格子对应这个控件。

  1. 可双击图标进行编辑。
  2. 再创建一个VI文件,命名为test,在其前面板中创建一个数值输入控件,在其前面板中鼠标右键-选择VI,导入FGV.vi。
  3. 向FGV.vi中写入数值,再读取数值。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号