当先锋百科网

首页 1 2 3 4 5 6 7

基本概念

labview是NI公司推出的一种图形化编辑编程语言,特点是代码图形化。

  1. 数据流是labview编程的核心,字符串输入控件就是数据源,数据最终流入的是显示控件;
  2. 文件后缀为VI(虚拟仪器),VI包括前面板和程序框图,控件放前面板,函数放程序框图,在前面板放置显示控件后,在程序框图会自动出现对应的接线端子,以供数据的流入和流出。
  3. 控件是数据的容器,数据不能离开控件而独立存在(移位寄存器和常量除外),一般的控件具有属性、方法和事件。属性就是一些外观、标签等,“值” 属性
  4. labview中类似记录或结构的数据类型,成为“簇”。

基本控件

布尔控件分为按钮型和开关型,对应现实世界,按钮型按下时改变状态,释放后自动恢复到原来的状态;开关型,改变状态时,保持在一个稳定状态,直到下一次改变为止。

变量

对于已经存在的局部变量,通过剪贴板复制局部变量是不可行的,这样会生成一个新的控件,最好的方法是按下Ctrl键后用鼠标拖动局部变量来克隆。
对于控件、常量、局部变量、属性节点、引用和方法的创建中,其中都包括了按下Ctrl键拖动鼠标的方法,这种方式称为克隆,克隆与复制粘贴不同,复制粘贴会创建新的控件,但克隆确实同一控件的局部变量和属性节点等等

属性节点

函数

labview对数据的所有操作都是通过各种基本函数实现的。
节点是程序框图上的对象,类似于文本编程语言中的语句、运算符、函数和子程序。它们带有输入/输出端,可以在VI运行时进行运算。LABVIEW提供以下类型的节点:

  1. 函数:内置的基本函数
  2. 子VI
  3. Express VI
  4. 结构
  5. 公式节点和表达式节点
  6. 属性节点和调用节点
  7. 通过引用节点调用:调用动态加载的VI的结构
  8. 调用库函数:标准库或DLL的结构
  9. 代码接口节点:调用文本语言的结构
    我们仅讨论常用需要的1、2、8;

1. 基本函数

加减乘除、平方、随机、常量、数组运算、簇运算、位运算、关系运算

2. 子VI

LABVIEW里面的子VI概念就相当于其它编程语言里面的函数,调用一个函数就相当于一个子vi,不过LABVIEW里面的子VI仍然可以是独立运行的,毕竟子VI的前面板里有相应的输入控件。
在这里插入图片描述
在总程序框图里选中想转为子VI的部分,然后在菜单栏中的<编辑>栏中选择<创建子VI>,值得注意的是有输入的控件也被选中成为子VI时,其控件变为内部输入控件,必须存在。当然除了这种方法,单纯的两个VI仍然是可以连接的,链接的渠道就是连接板,在labview右上角,它长这样:
在这里插入图片描述
其中连线板上的每个方格都代表一个接线端。使用矩形分配输入和输出。接线端的颜色代表其连接控件,多的白色的接线端预留给其它地方。

簇运算

簇中的元素是有独立标签的,标签代表簇中元素的名称。同时簇中的元素是有次序的,因此有两种方法寻址特定的簇元素:按名称和按次序。

  • 按名称接触捆绑
  • 在这里插入图片描述
  • 选好名称后,就能输出其元素。在错误簇传输中,错误簇包含了三个信息:出错与否(布尔型)、代码、源头。因此选bool型就能够通过条件选择器对条件结构进行控制。

程序运行结构

while循环

while循环至少要执行一次。
在这里插入图片描述
内部的即为循环结构,左下角的i为计数接线端,右下角为条件接线端。
如何将计数接线端读出来呢?
这就要通过结构隧道,对于结构体的结构隧道而言,如果是发送数据,则仅在第一次迭代时发送,输出则是在最后一次迭代式发送。
在这里插入图片描述

for循环

for循环多了一个循环次数,用法都差不多。

  • for 循环与数组
  • for循环与移位寄存器
    labview的移位寄存器实际上是借用了硬件移位寄存器其先进先出的数据结构的概念。
    前面说道,控件是数据的容器,在循环结构里面,隧道也可以存储数据。因为循环有时需要有一个不断更新的中间变量,labview中移位寄存器就充当了这个中间变量的功能。
  • 隧道
    – 索引隧道:每次循环结束后才传输数据
    在这里插入图片描述
    上图两侧的倒三角和正三角就是移位寄存器,循环一圈后,右侧正三角的值会自动传给相应的倒三角,从而起到了输出的值作为中间变量在下一次迭代使用。
  • for循环与continue和break

while循环与定时

while循环不仅可以用于数据计算,也是最基本的设计模式。一个while循环相当于能构成c语言中的main主程序,在labview里就是一个完整的顶层VI,并能编译成EXE文件。
while循环时是以尽可能快的速度运行,但很多时候我们并需要对内存有如此大的占用率,加入延时更符合实际情况,比如步进显微物镜但隔需要一段时间来采集图像。

  • 延时的时间函数有很多种,不一一介绍。
  • 值得注意的是延时的时间和运行一次的时间的冲突。

定时结构

while循环定时的一个缺点是无法保证精确的定时,因为操作系统的限制。
如果定时要求比较高的情况下,定时结构则成为首选。

独特的条件结构

  1. 布尔型输入
  2. 错误簇输入
  3. 数值型输入
  4. 枚举型输入
  5. 下拉列表输入
  6. 字符串和组合框输入

不和谐的顺序结构

labview属于多线程运行,同一程序框图下放两个同等条件下的加法程序,先运行哪个程序完全是一个随机的行为。有时我们想固定程序执行顺序,顺序结构就派上用场了。

  1. 平铺式顺序结构

  2. 堆叠式顺序结构
    顺序局部变量:
    在这里插入图片描述

局部变量、内置局部变量和功能全部变量

局部变量

局部变量作用于当前的VI,局部变量代表控件的值属性,而不是其本身。

  1. 用于初始化;
  2. 间隔数据存储或显示数据。
    2.1 实际工程应用中,一般采集的数据量很大,不需要全部存储,可以按照一定时间间隔存储或者显示一部分数据,不需要随时传递数据,这时用局部变量比较合适

事件结构

条件结构

项目

参考文献

  1. LABVIEW宝典 第二版