该课程属于labview入门教学,目前排课计划如下
1. 由泛华成都分公司选派讲师授课并指导学生进行试验;
2. 时间安排在每周五的下午2点开始,从12月12日开始行课;
3. 此阶段拟采用4-5个讲座完成;
请各位泛华班的同学做好进阶准备工作。
具体授课内容如下:
*******************************************************
第1课:LabVIEW导航
LabVIEW VI主要包含三个部分:
1.前面板 2.程序框图 3.图标/连线板
前面板:
? VI的用户界面
? 使用输入控件和显示控件创建前面板
程序框图:
? 包含图形化编程的源代码
? 前面板对象在程序框图中显示为接线端
连线板:
? 图标:VI的图形化表示
? 连线板:VI的输入和输出连线图
? 图标和连线板对于编辑用作子VI的VI非常必要
? 子VI为包含在另一个VI内部的VI
? 类似于文本编程语言中的函数
接线端:
? 前面板对象的程序框图外观
? 前面板与程序框图间交互信息的输入/输出端口
? 类似于文本编程语言的参数和常量
? 在快捷菜单中勾选显示为图标更改接线端的显示类型
节点:
? 程序框图对象,带有输入和/或输出端,并在VI运行时执行运算
? 类似于文本编程语言中的语句、运算符、函数和子程序
? 节点可以是函数、子VI或结构
工具:
? 通过LabVIEW提供的工具创建、修改和调试VI
? 工具是对应于鼠标动作的特定
操作模式
? 鼠标动作取决于所选择的工具图标
? 如开启自动选择工具功能,LabVIEW将根据当前鼠标位置判断要使用的工具
第2课疑难解答和VI调试
帮助:
? 即时帮助
? LabVIEW帮助
? 范例查找器
常见问题
? 断线
? 将布尔输入控件连接至
字符串显示控件
? 将数值型输入控件连接至
数值型输入控件
? 必须连接的程序框图接线端断开
? 子VI断开或将子VI图标放置在VI程序框图上之后,对连线板进行了编辑
第3课:实现VI
前面板设计
? 前面板设计包括输入及输出设计
? 通过下列方式获得输入:
? 来自设备
? 从文件直接读取
? 操作输入控件
? 通过下列方式输出数据:
? 显示控件显示数据
? 记录到文件
? 输出到设备
数据类型
While循环
隧道:
? 隧道用于结构间的数据输出和输出
? 隧道根据接入的数据类型更改颜色
? 循环结束后,数据传出隧道
? 隧道向循环传送数据时,需所有数据均到达隧道后,循环才能执行
For循环
移位寄存器
? 右键单击循环边框,从快捷菜单选择添加移位寄存器
? 右侧的移位寄存器存储每次循环结束后的数据
? 左侧的寄存器为下一循环提供所存储的数据
层叠移位寄存器
? 层叠移位寄存器可保存多次循环的值,并将值传递到下一循环中
? 右键单击左侧移位寄存器,从快捷菜单选择添加元素
条件结构
? 包括两个及以上子程序框图或分支
? 每次仅执行一个条件分支
? 执行哪个子程序框图取决于输入值
? 类似与文本编程语言中的case语句或if...then...else语句
? 选择器标签:包含当前条件标签名称和两侧递增/递减按钮
? 选择器接线端:连接输入值或选择器,以确定要执行的条件分支
? 可为条件结构指定默认的条件分支
? 如已为1、2和3指定条件分支,输入数据4时,条件结构将执行默认条件分支
? 右键单击条件结构边框添加、复制、删除、重排及选择默认分支
? 可创建多个输入/输出隧道
? 输入数据可供全部条件分支使用
? 必须为每个条件分支定义各自的输出隧道
? 应避免使用未连接时使用默认选项
? 增添代码复杂性
? 代码调试难度增大
第4课关联数据
数组
? 数组由元素和维度组成
? 元素:组成数组的数据
? 维度:数组的长度、高度和深度
? 数组可以是一维或多维的,
内存允许的情况下每一维度可有多达(231)–1
个元素
? 处理一系列相似的数据并执行重复计算操作时,
可考虑使用数组
二维数组
? 元素按网格方式存储
? 定位一个元素需要行索引和列索引,上述索引均以零为起始值
? 如要在前面板创建一个多维数组,右键单击索引显示边框,从快捷菜单选择添加维度
? 或直接拖曳索引显示边框至所需维数
簇
? 簇将不同类型数据元素归为一组
? 类似于文本编程语言中的记录或结构体
? 簇不同于数组的地方在于簇的大小是固定的
? 簇可以包含不同的数据类型;数组仅可包含一种数据类型
? 与数组类似,簇只能包含输入控件或显示控件,不能同时包含两种控件
自定义控件
? 通过自定义输入控件和显示控件扩展前面板对象集
? 创建并保存
自定义输入控件或显示控件
? 在其它前面板上使用
自定义输入控件和显示控件
第5课高级文件I/O技术
两种访问数据的方法:
? 顺序访问-从文件起始处按顺序依次读取
? 随机访问-从文件的任意位置访问数据
TDMS
? 技术数据管理流
TDMS文件格式用于:
? 存储测试或测量数据
? 为数据分组创建新的数据结构
? 存储数据信息
? 高速读写数据
? TDMS文件格式:
TDMS文件
? 包含数据和存储数据属性的二进制文件(.tdms)
? TDMS_Index file
? 提供TDMS文件所有属性和指针信息的二进制索引文件(*.tdms_index)
? 加快读取文件时的速度
? 丢失后可重新自动生成
? TDMS文件格式的内部架构已公开
通道
? 存储测量信号或原始数据至TDMS文件
? 每个通道可包含描述数据的属性
? 信号中存储的数据以二进制格式存储在磁盘上,以节省磁盘空间并提高效率
通道组
? TDMS文件段,包含属性及一个或多个通道
? 通道组用于组织数据以及存储用于多个通道的信息
第6课模块化
? 模块化就是将程序分为若干区块。这样,对程序某个模块的修改就不会影响到其它模块。
? LabVIEW中模块称为子VI
? 在VI内部被调用的VI称为子VI
? 子VI相当于文本编程语言中的子程序
? 前面板和程序框图右上角均显示VI图标
? 图标为程序框图中VI的图形化表示
第7课 常用设计技巧
- 单循环架构
- 并行
- 多循环架构
- 事件
- 为设计模式设置定时
单循环
简化
? 完成测量、计算、显示结果或将结果记录到磁盘的单个VI
? 通常无需用户执行指定起始或停止动作
并行
同时执行多个任务
. 多循环架构
什么是事件?
? 通过事件影响程序框图执行
? 事件是活动发生的异步通知
? 事件可来自用户界面、外部I/O或程序的其它部分
为设计模式设置定时-执行
执行定时
? 为设计模式提供一个函数,使处理器有时间处理其它任务
? 某些情况下,无需使用函数
软件控制定时
? 考虑使用状态机模式设计一个数据采集系统
? 如要连续采集数据5分钟,则系统在此段时间内需保持为采集状态
? 但在此时间段不可以处理其它用户界面操作(如停止VI)
? 如要执行用户界面操作,必须设置定时使VI可在指定时间内连续运行
第8课多个循环间通信
- 变量
- 功能全局变量
- 竞争状态
- 同步数据
变量
- 通过连线无法在并行循环间传递数据
- 变量可克服常规数据流的上述缺点,即不使用连线完成数据传递
功能全局变量通常包括一个未初始化的移位寄存器①和一个For循环或While循环
竞争状态
? 在竞争状态下,事件定时或任务安排可能会无意中影响到输出值或数据值
? 对于并行执行多个任务并在任务间共享数据的程序来说,竞争状态为常见的问题
同步数据
? 变量常用于在并行处理过程中传递数据
? 使用变量会破坏LabVIEW的数据流模式,从而可能引发竞争状态,并占用更多的系统资源。与通过连线传递数据相比,占用系统开销更大。
通知器
使用通知器在并行循环间传输数据具有下列优点:
? 两个循环均被同步为与主循环一致-从循环仅在主循环发出通知时执行
? 通知器可用于创建全局可用数据,从而使发送带通知器的数据成为可能
使用通知器创建有效代码-无需通过轮询确定主循环的数据何时可用
队列
? 队列与通知器类似,但队列可以存储多个数据
? 默认情况下,队列以FIFO(先进先出)方式执行
? 如需处理排列为队列的数据,请使用队列
? 如仅需处理当前数据,请使用通知器
第9课控制用户界面
- 属性节点
- 调用节点
属性节点
? 属性节点用于访问对象属性
? 在某些应用中可能需要通过编程改变前面板对象外观,以响应特定输入
? 当用户输入无效密码时,红色指示灯开始闪烁
? 当数据值高于指定值时,线条显示为红色而不是绿色
? 使用属性节点可通过编程完成上述更改
调用节点
? 调用节点用于访问对象的方法
? 使用调用节点执行应用程序或VI的操作和方法
? 与属性节点不同,单个调用节点只能为应用或VI调用一个方法
第10课状态机
尽管顺序结构或顺序连接子VI可完成任务,但对于下列情况并非理想选择:
? 需改变执行顺序时
? 需重复执行顺序结构中某一帧时
? 需仅在满足一定条件时才执行某几帧时
? 需立即停止程序,而不是等待最后一帧执行完毕才结束程序时
状态机
? 状态机设计模型是将状态图或流程图实体化
? 何时使用状态机?
? 通常用于创建用户界面,不同的用户操作对应不同的用户界面
? 通常用于进程测试,不同状态对应进程的不同阶段
? 状态机由状态的集合以及对应状态切换的转换函数构成
? 每个状态可触发一个或多个状态或结束进程处理
*******************************************************