LabView Core1
Lecture 1 Labview简介
LabView是什么?
Labview是一种图形化的编程环境,用于开发复杂的测试、测量和控制系统
项目浏览器
- LabView文件
- Labview项目文件:
.lvproj
- 虚拟仪器(VI):
.vi
- 自定义控件:
.ctl
- Labview项目文件:
- 项目文件夹
VI 的组成
- 前面板
- 程序框图
- 图标/接线板
前面板
VI的用户界面;
用于创建输入控件、显示控件等;
- 窗口工具栏的按钮功能
- 控件
- 输入控件:输入
- 显示控件:输出
- 控件类型
- 字符串型
- 布尔型
- 数值型
- 前面板对象样式(为了应付不同人的审美)
- 新式控件
- 系统控件
- 银色控件
- 经典控件
程序框图
图形化源代码的集合
前面板对象在程序框图中为接线端
- 程序框图工具栏按钮的作用
- 函数选板(右键可见)
- Express VI
- 节点外观(理解为“封装”)
- 连线
- 用于在程序框图对象间传递数据(只能有一个数据源,但可以有多个读取端)
- 断线(VI断开的常见原因)
- 输入输出的数据类型不匹配
- 数据的输入输出端接的并不是输入控件和显示控件(或者接受信号的控件)
- 仪器需要的输入信号缺失
- 浮点型、整型、字符串型、布尔型的一位二维数组的连线颜色
- 范例
- 点击
帮助
—>查找范例
浏览和查找范例
- 点击
Lecture2 创建首个程序
数据流
- 只有接收到全部输入数据后,节点才开始执行!
- 节点执行结束后,才向输出端提供数据!
并型结构,无法判断接收并型数据的仪器哪个先执行
LabView数据类型
- 接线端可以直观的反映数据类型的信息(主要看颜色)
- 布尔型有很多机械动作(本质上和看时序图一样)
- 数值数据表示法
- Orange表示浮点型数据:SGL-4Byte;DBL-8Byte
- Blue表示整型或无符号整型:无符号8bit—U8,范围为0-255
- 红点表示强制转换点
- 字符串
- 其他类型数据
创建一个简单VI
Lecture 3 疑难解答和调试VI
纠正断开的VI
- VI断开的常见原因
- 输入输出的数据类型不匹配
- 数据的输入输出端接的并不是输入控件和显示控件(或者接受信号的控件)
- 仪器需要的输入信号缺失
- 点击错误处即可查看错误详情
- 错误项
- 错误和警告
- 详细信息
调试技巧
- 调试工具(窗口工具栏那一排按钮)
- 断点
- 未定义或未预期的数据
- 错误簇(黄色的线)
- 状态
- 代码
- 源
- 错误和警告的关系
- 状态为
真
,说明存在错误,无法执行 - 状态为
假
,说明是警告,依然可以执行
- 状态为
- 合并错误
只会显示第一个错误!
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中访问文件
- 常规文件操作
- 打开/创建/替换文件
- 读取和/或写入文件
- 关闭文件
- 检查错误
高层和底层文件的I/O
Lecture 10 使用顺序和状态机编程
顺序编程
使用数据流确保节点按顺序执行
- 为何使用顺序编程
- 确定
读取
,通知
,再读取
,关闭
的顺序(也可以用错误簇来控制)
- 确定
- 顺序结构
- 顺序结构是由多个帧组成的结构,按照帧的先后顺序执行
- 顺序执行过程中不能中断,因此避免过度使用顺序结构
- 错误条件结构
- 用条件触发,相当于一帧的条件接线端
状态编程
说明状态转换图表示的功能
为何使用状态编程
- 改变执行顺序
- 重复执行顺序中的某一项
- 只要满足条件时执行
- 使程序随即停止
状态转换图–easy
状态机
- 何时使用状态及
- 顺序流程
- UI驱动的流程
- 在状态及之间实现转移
- 单个默认转移
- 单个函数转移
- 条件结构转移
- 转移数组
- 状态机的基本执行元素
- while循环
- 条件结构
- 移位寄存器
快捷键
C+e:前面板和程序框图切换
C+h:显示帮助