labview-core1培训笔记

LabView Core1

Lecture 1 Labview简介

LabView是什么?

Labview是一种图形化的编程环境,用于开发复杂的测试、测量和控制系统

项目浏览器

  • LabView文件
    • Labview项目文件: .lvproj
    • 虚拟仪器(VI): .vi
    • 自定义控件: .ctl
  • 项目文件夹

VI 的组成

  • 前面板
  • 程序框图
  • 图标/接线板

前面板

VI的用户界面;
用于创建输入控件、显示控件等;

  • 窗口工具栏的按钮功能
  • 控件
    • 输入控件:输入
    • 显示控件:输出
  • 控件类型
    • 字符串型
    • 布尔型
    • 数值型
  • 前面板对象样式(为了应付不同人的审美)
    • 新式控件
    • 系统控件
    • 银色控件
    • 经典控件

程序框图

图形化源代码的集合
前面板对象在程序框图中为接线端

  • 程序框图工具栏按钮的作用
  • 函数选板(右键可见)
  • Express VI
  • 节点外观(理解为“封装”)
  • 连线
    • 用于在程序框图对象间传递数据(只能有一个数据源,但可以有多个读取端)
    • 断线(VI断开的常见原因)
      • 输入输出的数据类型不匹配
      • 数据的输入输出端接的并不是输入控件和显示控件(或者接受信号的控件)
      • 仪器需要的输入信号缺失
    • 浮点型、整型、字符串型、布尔型的一位二维数组的连线颜色
  • 范例
    • 点击帮助—>查找范例浏览和查找范例

Lecture2 创建首个程序

数据流

  • 只有接收到全部输入数据后,节点才开始执行!
  • 节点执行结束后,才向输出端提供数据!

    并型结构,无法判断接收并型数据的仪器哪个先执行

LabView数据类型

  • 接线端可以直观的反映数据类型的信息(主要看颜色)
  • 布尔型有很多机械动作(本质上和看时序图一样)
  • 数值数据表示法
    • Orange表示浮点型数据:SGL-4Byte;DBL-8Byte
    • Blue表示整型或无符号整型:无符号8bit—U8,范围为0-255
    • 红点表示强制转换点
  • 字符串
  • 其他类型数据
    • 动态:保存Express VI产生或保存的数据
    • 路径:保存文件或路径的位置
    • 波形:包含波形的数据、起始时间、时间间隔

      编写、整理和组织VI的工具

创建一个简单VI

Lecture 3 疑难解答和调试VI

纠正断开的VI

  • VI断开的常见原因
    • 输入输出的数据类型不匹配
    • 数据的输入输出端接的并不是输入控件和显示控件(或者接受信号的控件)
    • 仪器需要的输入信号缺失
  • 点击错误处即可查看错误详情
    • 错误项
    • 错误和警告
    • 详细信息

调试技巧

  • 调试工具(窗口工具栏那一排按钮)
  • 断点
  • 未定义或未预期的数据
    • 无穷大:Inf
    • 错误数:NaN(根号下为负号等)

      错误处理

  • 错误簇(黄色的线)
    • 状态
    • 代码
  • 错误和警告的关系
    • 状态为,说明存在错误,无法执行
    • 状态为,说明是警告,依然可以执行
  • 合并错误
    只会显示第一个错误!

Lecture 4 使用循环结构

循环结构

For循环 While循环
未添加条件接线端,For循环按照设定次数执行 仅当条件接线端接收到符合条件的值才停止执行
可执行0次 至少执行1次
隧道自动输出一个数组 隧道自动输出最后一次执行的值

While循环

  • 隧道
    循环框与输入输出连线相交得到的小方框
  • 错误检查和处理
    将程序放在While循环中,将错误输出信号连接到条件接线端,实现发生错误就自动停止。

For循环

  • 在程序框上右键可以添加条件接线端
  • 总数接线端数值转换
    循环次数为整型!转换为长整型可节省内存。

VI定时

  • 循环内部的等待函数可使VI在某段时间内处于休眠状态,在这段时间内,处理器可以分配其他任务
  • 等待函数使用的是操作系统的时钟
    • 等待#毫秒
    • 等待下一个整数倍毫秒
      +

      循环中的数据反馈

  • 移位寄存器
    • 以一对循环计数对的形式出现
    • 没有初始化是,整型默认起始为0,字符串为,布尔型为

绘制数据图表

  • 波形图表
  • 波形图表属性

Lecture5 创建和使用数据结构

数组

  • 创建数组(数组里面不能加数组
  • 索引编号,第一个元素为0
  • 初始化数组(填入一些数据)

    常见数组函数

  • 数组插入(eg,一行3列插入到两行4列,随后列数以插入的为准,即三行三列)
  • 删除数组元素
  • 数组对大最小值
  • 搜索一维数组

    多态性

  • 数组+标量–>每个元素都加
  • 数组+数组–>以较短数组为准

    自动索引

  • 启动自动索引,将数组连接至循环结构,启用自动索引可有序对应循环与数组中的元素,右键单击隧道即可进行设置。
  • 创建二维数组(两个For循环嵌套,最外面用自动索引)
  • 自动索引输入(可以不用设置循环次数)
  • 自动索引输入与数组大小的区别(循环次数取决于自动索引次数中最小的再-1)

  • 使用簇的原因
    • 簇将不同类型的文本归为一个整体
    • 簇类似于文本编程语言中的结构体
  • 簇与数组
数组
混合数据类型 单一数据类型
大小固定 大小不固定
  • 创建簇控件和常量
  • 对项进行排序并调整簇大小
  • 分解簇和改变簇
    • 解除捆绑(按名称和不按名称)
    • 更改簇,捆绑(按名称,不按名称)
  • 绘制数据图表

    自定义类型

  • 控件类型
    • 控件
    • 自定义控件
    • 严格自定义控件

Lecture 6 使用决策结构

条件结构

  • 条件结构 满足条件才执行—>条件接线端
  • 选择器接线端的数据类型 (除了数组,其他的都支持)
  • 输入和输出隧道
    • 输入隧道数据可供全部条件分支使用
    • 必须为每个条件分支定义其输出隧道

      事件驱动编程

  • 事件驱动场景
  • 编辑事件对话框

Lecture 7 模块化

理解模块化概念

  • 模块化
  • 子VI–重用代码

    图标

  • VI的图表化表示
  • 标记VI程序框图,传达VI功能

    连线板

  • 位于图标左侧
  • 可选择不同方式
  • 指定连线端

    说明信息

  • VI说明信息: 文件–>VI属性–>说明信息
  • 插入自带标签或自由标签

    使用子VI

  • 保存在项目中直接拖拽使用
  • 选中后,点击编辑,快速创建子VI

Lecture 8 硬件结合(略)

Lecture 9 在LabView中访问文件

在LabView中访问文件

  • 常规文件操作
    1. 打开/创建/替换文件
    2. 读取和/或写入文件
    3. 关闭文件
    4. 检查错误

高层和底层文件的I/O

  • 文件引用句柄(指定文件唯一的I/O会话)
    *

    比较文件格式

Lecture 10 使用顺序和状态机编程

顺序编程

使用数据流确保节点按顺序执行

  • 为何使用顺序编程
    • 确定读取通知再读取关闭的顺序(也可以用错误簇来控制)
  • 顺序结构
    • 顺序结构是由多个帧组成的结构,按照帧的先后顺序执行
    • 顺序执行过程中不能中断,因此避免过度使用顺序结构
  • 错误条件结构
    • 用条件触发,相当于一帧的条件接线端

状态编程

说明状态转换图表示的功能

  • 为何使用状态编程

    • 改变执行顺序
    • 重复执行顺序中的某一项
    • 只要满足条件时执行
    • 使程序随即停止
  • 状态转换图–easy

状态机

  • 何时使用状态及
    • 顺序流程
    • UI驱动的流程
  • 在状态及之间实现转移
    • 单个默认转移
    • 单个函数转移
    • 条件结构转移
    • 转移数组
  • 状态机的基本执行元素
    • while循环
    • 条件结构
    • 移位寄存器

快捷键

C+e:前面板和程序框图切换
C+h:显示帮助

cxjiang wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创分享,您的支持将鼓励我继续创作!