第6讲 LabVIEW程序设计进阶
LabVIEW开发环境及程序设计基础(共 66张PPT)

程序框图中的连线
• 通过颜色、类型、粗细来表示不同的数据类型
Scalar 1D Array 2D Array DBL Numeric Integer Numeric String
• 不同数据类型之间的连线会产生错误
– Ctrl+B可清楚所有错误连线
– LabVIEW 8.6之后具有整理连线功能
型,不过取值范围有限 – 常与条件结构共同使用
枚举型变量作为条件结构的 分支选择依据
某枚举型变量的配置对话框
数组
• LabVIEW中的数组可以是1维
当前显示的第一个元素 所对应的索引
的,也可以是多维的
• 每一维元素从0开始索引
数组元素
数组
• 在LabVIEW的前面板/程序框图中创建数组
• 在程序中对数组进行操作
– 前面板、程序框图(后面板)、图标/连线板
前面板
• 相当于界面
– 每个VI都有前面板
• 输入控件
– Control, 相当于输入
• 显示控件
– Indicator, 相当于输出
• 控件选板
程序框图
• 图形化的程序代码
– 决定程序运行行为
• 可能包含元素
– 终端 – 子VI – 函数 – 常数 – 结构 – 连线
D) 除法
E) 正弦
理解数据流 (没有固定答案)
哪个节点先执行?
A) 加法 – 可能
B) 减法 – 不可能 C) 随机数 – 可能
D) 除法 – 可能
E) 正弦 – 不可能
一个简单的VI:采集、分析、表达
LabVIEW中的“采集”Express VI
• DAQ Assistant Express VI
LabVIEW820程序设计从入门到精通》随书教学及习题基础篇部分第6章字符串、数组、簇和矩阵幻灯片

6.3 簇〔Cluster〕 ——LabVIEW中的构造体变量
2、打包函数〔Bundle〕 该函数用来为Cluster中各元素赋值。
6.3 簇〔Cluster〕 ——LabVIEW中的构造体变量
3、按元素名称解包函数〔Unbundle By Name〕
普通的解包函数解包后只有将鼠标移到输出 端子上才能看到输出元素的名称,程序的可 读性不高。该函数可以根据名称有选择的输 出簇内部元素。其中元素名称就是指元素的 Label。
b〕 假设大小不一样,那么忽略较大数组多出 来的局部。
c〕 如果一个数组和一个数值进展运算,那么 数组的每个元素都和该数值进展运算从而输出 一个新的数组。
6.2 数组〔Array〕
6.2.3 数组函数
6.2 数组〔Array〕
6.2.用3A数rray组Si函ze 函数数举获得例三维数组大小示例
6.1 字符串〔String〕
6.1.1 字符串控件
字符串输入控件一般被用作文本输入框,而字符串 显示控件一般被用作文本显示框。
6.1 字符串〔String〕
6.1.2 表格和树形控件 表格〔Table〕和树形控件在Controls
Palette的Modern->List & Table…面板下。 表格实际上就是一个字符串组成的二维数组。 树形控件以树的形式显示多层内容,
通过选择Help->Explain Error…翻开错误解 释框来查找该错误代码的更详细的解释。
6.4 矩阵〔Matrix〕
LabVIEW 8之前的版本中只能通过二维数组来 实现矩阵的操作。但是数组的运算方法和矩阵 的运算方法有很大不同,譬如两个数组相乘是 直接将一样索引的数组元素相乘,而矩阵的相 乘必须按照线性代数中规定的方法相乘,因此 用数组实现矩阵运算是非常麻烦的。LabVIEW 8最新参加了对矩阵的支持,从而使矩阵的运 算变得非常简单。
LabVIEW程序设计从入门到精通 ppt课件

22
ppt课件
3.1 安装LabVIEW
• 性能要求及详细安装过程请参考 《LabVIEW 8.20程序设计从入门到精通》 第3.1、3.2节
2021/3/26
LabVIEW程序设计从入门到精通
23
ppt课件
3.2 LabVIEW编程环境
• LabVIEW程序包括前面板(用户界面)和 后面板(程序框图)
2021/3/26
LabVIEW程序设计从入门到精通
33
ppt课件
3.3.1 实时上下文帮助窗口
显示VI 路径
锁定上下 文相关帮 助
更多帮助 信息
单击此处访问 更详细的联机 帮助
2021/3/26
LabVIEW程序设计从入门到精通
34
ppt课件
3.3.1 实时上下文帮助窗口
• 选择菜单栏中Help->Show Context Help 选项或按下Ctrl+H,就会弹出Context Help 窗口。
– 在美国Lawrence Livermore国家实验室,一个花费 2000万美金的极为复杂的飞秒激光切割系统就是基于 LabVIEW开发的。
– 在北京正负电子对撞机二期工程北京谱仪慢控制系统 中,大约有30种物理量共7000多点的现场数据点需要 实时采集控制和分析记录等。
2021/3/26
LabVIEW程序设计从入门到精通
2021/3/26
LabVIEW程序设计从入门到精通
16
ppt课件
第2章 牛刀小试
2021/3/26
LabVIEW程序设计从入门到精通
17
ppt课件
仿真信号采集VI
2021/3/26
LabVIEW程序设计从入门到精通
LabVIEW程序设计从入门到精通随书教学课件及习

3.2.4 函数选板
3.2.4 函数选板
函数选板只能在编辑程序框图时使用, 与控件选板的工作方式大体相同。创建 框图程序常用的VI和函数对象都包含在 该选板中。
选择View->Functions Palette或右击 框图面板空白处就可以显示函数选板。
第3章 开始LabVIEW之旅
本章内容
3.1 安装LabVIEW 3.2 LabVIEW编程环境
3.2.1 LabVIEW 8.2 启动界面 3.2.2 前面板和程序框图 3.2.3 控件选板 3.2.4 函数选板 3.2.5 工具选板
3.3 善用LabVIEW联机帮助
3.3.1 实时上下文帮助窗口 3.3.2 联机帮助文档 3.3.3 范例查找器
3.5 编辑程序框图
程序框图是图形化源代码的集合,这种 图形化的编程语言也称为G语言。
3.5.1 程序框图中的控件对象
程序框图中的控件对象实际上是前面板 相应控件的接线端
前面板控件
程序框图中对应的接线端
3.5.2 程序框图节点
LabVIEW中的程序框图节 点是指带有输入和输出接 线端的对象,类似文本编 程语言中的语句、运算符、 函数和子程序。LabVIEW 中的节点主要包括函数、 结构、Express VI、子VI 等。
单击此处访问 更详细的联机 帮助
3.3.1 实时上下文帮助窗口
选择菜单栏中Help->Show Context Help选项或按下Ctrl+H,就会弹出 Context Help窗口。
当鼠标移到某个对象或函数上时,上下 文帮助窗口就会显示相应的帮助信息。
LabVIEW 8.20程序设计从入门到精通

3.3.3 范例查找器
3.3.3 范例查找器
• LabVIEW提供了大量的范例,这些范例几 乎包含了LabVIEW所有功能的应用实例, 并提供了大量的综合应用实例。 • 在菜单栏中选择Help->Find Examples选 项可以打开范例查找器。
3.4 编辑前面板
• LabVIEW中的前面板是图形化的人机界面, 利用控件选项板提供的各种控件可以所见 即所得地编辑丰富多彩的人机界面。
小试身手写一个类似于左图的正弦波发生器要求频率和幅度可labview本章内容31安装labview32labview编程环境321labview82启动界面322前面板和程序框图323控件选板324函数选板325工具选板33善用labview联机帮助331实时上下文帮助窗口332联机帮助文档333范例查找器34编辑前面板341输入控件controls和显示控件indicator342控件属性35编辑程序框图351程序框图中的控件对象352程序框图节点353对象连线36运行vi37调试vi31安装labview性能要求及详细安装过程请参考labview820程序设计从入门到精通第3132节labview程序包括前面板用户界面和后面板程序框图工具选板选择各种编辑工具前面板和后面板都要用到32labview编程环境321labview82启动界面vi程序和工程创建栏新近打开的工程和vi程序列表栏帮助资源列322前面板和程序框图labview程序被称为vi扩展名默认为
3.2.4 函数选板
3.2.4 函数选板
• 函数选板只能在编辑程序框图时使用,与 控件选板的工作方式大体相同。创建框图 程序常用的VI和函数对象都包含在该选板中。 • 选择View->Functions Palette或右击框图 面板空白处就可以显示函数选板。
LabVIEW程序设计步骤知识分享

L a b V I E W程序设计步骤LabVIEW程序设计步骤下面通过一个设计实例来详细介绍虚拟仪器软件LabVIEW的程序设计步骤。
设计目标:假设有一台仪器,需要调整其输入电压,当调整电压超过某一设定电压值时,需通过指示灯颜色变化发出警告。
1 建立新VI启动LabVIEW程序,单击VI按钮,建立一个新VI程序。
这时将同时打开LabVIEW的前面板和后面板(框图程序面板)。
在前面板中显示控件选板,在后面板中显示函数选板。
在两个面板中都显示工具选板。
如果选板没有被显示出来,可以通过菜单查看(View)/工具选板(Tools Palette)来显示工具选板,通过查看(View)/控件选板(Controls Palette)显示控件选板,通过查看(View)/函数选板(Functions Palette)显示函数选板。
也可以在前面板的空白处,单击鼠标右键,以弹出控件选板。
2 前面板设计输入控制和输出显示可以从控件选板的各个子选板中选取。
本例中,程序前面板中应有1个调压旋钮,1个仪表,1个指示灯,1个关闭按钮共4个控件。
1)往前面板添加1个旋钮控件:控件(Controls)→新式(Modern)→ 数值(Numeric)→旋钮(Knob),如图2-14所示,标签改为“调压旋钮”;2)往前面板添加1个仪表控件:控件(Controls)→新式(Modern)→数值(Numeric)→仪表(Meter),如图2-14所示,标签改为“电压表”。
3)往前面板添加1个指示灯控件:控件(Controls)→新式(Modern)→布尔(Boolean)→圆形指示灯(Round LED),如图2-15所示,将标签改为“上限灯”。
图2-14 添加旋钮、仪表控件图2-15 添加指示灯、按钮控件4)往前面板添加1个停止按钮控件:控件(Controls )→ 新式(Modern )→ 布尔(Boolean ) → 停止按钮(Stop Button ),如图2-15所示,将标签改为“关闭”。
LabView程序设计的一般过程

1.找出语法错误 如果一个VI程序存在语法错误,则在面板工具条上的运行按钮会变成一个
折断的箭头,表示程序不能被执行。这时该按钮被称作错误列表。在这它, 则LabVIEW弹出错误清单窗口,在这其中任何一个所列出的错误,选用Find 功能,则出错的对象或端口就会变成高亮。 2.设置执行程序高亮
v
step over是在单步执行时,在函数内遇到子函 数时不会进入子函数内单步执行,而是将子函 数整个执行完再停止,也就是把子函数整个作 为一步。
v
step out就是单步执行时,用step out就可以执 行完程序余下部分,并返回。
On the evening of July 24, 2021
Courseware template
可用探针工具来查看当流程图程序流经某一根连接线时的数据值。从Tools工 具模板选择探针工具,再用鼠标左键在这你希望放置探针的连接线。这时显示器 上会出现一个探针显示窗口。该窗口总是被显示在前面板窗口或流程图窗口的上 面。在流程图中使用选择工具或连线工具,在连线上在这鼠标右键,在连线的弹 出式菜单中选择探针命令,加上一个探针同样可以为该连线。
Courseware template
LabVIEW程序调试技术
3.断点与单步执行 为了查找程序中的逻辑错误,有时希望流程图程序一个节点一个节点地执行。
使用断点工具可以在程序的某一地点中止程序执行,用探针或者单步方式查看数 据。使用断点工具时,在这你希望设置或者清除断点的地方。断点的显示对于节 点或者图框表示为红框,对于连线表示为红点。当VI程序运行到断点被设置处, 程序被暂停在将要执行的节点,以闪烁表示。按下单步执行按钮,闪烁的节点被 执行,下一个将要执行的节点变为闪烁,指示它将被执行。你也可以在这暂停按 钮,这样程序将连续执行直到下一个断点。 4.探针
Labview从入门到精通 第6章

102
Created with SmartPrinter trail version
初始化移位寄存器和反馈节点 Initialized Shift Registers & Feedback Nodes
Output = 5
Output = 5
Run Once
VI stops execution
等待功能Wait Functions
Wait (ms)
Functions»Time & Dialog palette Time Delay
Functions»Time & Dialog palette
98
Created with SmartPrinter trail version
顺序框架
框图标识符
105
Created with SmartPrinter trail version
D. Case结构
减量 按钮 增量 按钮
Case结构 选择器端子
选择 器标签
If(条件) Switch(条件) {} {case 式1: Else case 式2: {} Default: }
112
Created with SmartPrinter trail version
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– LabVIEW中的面向对象编程(OOP)
养成良好的编程习惯
• 程序框图不要太大
– 尽量在一屏中放下,或者至多只需在一个方向上拖动
– 程序如果实在太大,应考虑使用子VI (将在后续介绍)
• 添加必要的注释
清晰直观的子VI风格
Better Good
Best
33
习惯数据流的编程方式
• 有些顺序帧结构可以用状态机替换
常用的LabVIEW程序设计架构
• 单循环架构
– 状态机
– 事件结构
• 多循环架构
– 生产者/消费者结构
– 基于事件的生产者/消费者结构
单循环架构
• 如前面提到的简单数据采集(连续模拟输入)程序
• 前面提到的状态机结构
复习: 状态机结构
事件结构
• 常用于响应前面板控件操作
• 自定义事件 (自学内容)
前面板 用户动作
执行
程序框图
事件结构的使用
• 通常与While循环一起使用
• 每次循环响应一个事件
• 没有时间发生则处于Sleep状态
事件结构
超时设置 事件选择标签
事件数据节点
事件过滤器节点
编辑事件
配置事件
事件源 事件
通知与过滤事件
通知事件(green arrow)
用户动作已经发生并处理
过滤事件(red arrow)
LabVIEW项目
• 借助LabVIEW项目
– 管理文件 (LabVIEW VI或项目相关的其他文件)
– 生成可执行文件(exe)或安装包 – 将LabVIEW程序发布到其他目标上 (如实时控制器、FPGA等)
理解: LabVIEW数据流与并行
• 问题: 如何同时停止两个循环?
变量
• 解决方案: 利用LabVIEW中的局部变量
LabVIEW中的变量
• 局部变量
– VI内部
• 全局变量
– 同一机器上的VI之间, 不一定建立项目
• 单进程共享变量
– 可用于需要在不同机器之间共享变量的情况, 需要建立项目 – 通过网络传输数据的相关内容可通过参考书自学
在LabVIEW项目中建立共享变量
单进程共享变量的使用
变量使用的注意事项
编程经验》
• 希望同学们能在后续的 Project 中,有意识利用这些 LabVIEW程序设计技巧,活学活用
界面设计原则: 不杂乱
• 不使用过多的字体、色彩
• 默认的经典黑白灰方案最保险
界面设计原则: 整洁
• 如果前面板控件较多,可利用Tab控件整理分类
范例程序展示
访问代码展览馆可 下载更多炫酷LabVIEW程序
更多LabVIEW编程技巧
• 参考阮奇桢著《我和LabVIEW——一个NI工程师的十年
相关书籍
多循环架构
• 并行循环
生产者/消费者模式
• 很多 数据采集-处理 应用可采用这种模式 • 问题: 如何在两个循环之间“同步”传递数据?(使消费者循环 不会重复读取)
通过队列同步生产者/消费者循环
结合事件结构的生产者/消费者模式
LabVIEW中的设计模式模板
属性节点
• 在一些应用中,也许希望通过程序实时改变一些前
• 举例: 创建并使用调用节点
方法名称 参数
更多学习内容
• 若想深入学习 LabVIEW,还有以下内容值得学习 (在课
程设计或今后的工作中需要运用时,可参阅相关资源自学)
– 自定义控件 – VI Server与引用
– 动态加载子面板
– 网络编程 – 数据库编程
– 调用DLL动态链接库
– 调用ActiveX与.NET对象 – Xcontrol
• 避免不必要的使用(比如仅仅为了减少连线)
• 初始化变量(避免出现不确定状态)
避免竞争状态
• 避免同时写入共享资源
• 例: 右边程序的执行结果?
– Value = (Value * 5) +2 – Value = (Value + 2) * 5
– Value = Value * 5
– Value = Value +2
第六讲 LabVIEW程序设计进阶
复习
• 通过前面的学习和实验,已掌握
– LabVIEW开发环境及基本编程和调试方法
– 简单的数据采集 – 在LabVIEW中进行信号处理
进阶
• LabVIEW项目
• 通过变量传递数据
• 典型程序设计架构 • 属性节点与调用节点 • 养成良好的编程习惯 • 界面设计
– 仅对于通知事件,可以选择关闭锁定
• 当VI代码执行完毕,注册的事件将被注销
一个简单的事件结构运用举例
使用事件结构时的注意事项
• 一个While循环中只放置一个事件结构
• 尽量不要在事件结构中放置复杂的处理代码
– 如果事件响应需要复杂的处理可结合后面将讲到的生产者 / 消费者模式
• 更多关于事件结构的注意事项请参考 LabVIEW 帮助及
用户动作已发生但尚未处理事件. 允许自定 义事件响应
事件结构的运行机制
• 当运行一个VI时,LabVIEW将自动注册那些已经在事件
结构对话框中配置好的事件
• 当一个已经注册的事件发生时,它将进入事件队列并 等待对应的事件结构代码执行
– 不会错过事件,并且响应事件的先后顺序依照发生的顺序
• 默认情况下,前面板会锁定,直到对应的事件被处理
面板控件的属性
– 例1: 当用户输入错误信息时, 希望LED显示控件变为红色 – 例2: 当采集的温度超过某一阈值, 希望波形曲线变为红色
• 在LabVIEW中,可通过属性节点的编程完成这些功能
– 演示: 创建并使用属性节点
调用节点
• 通过调用节点对 VI或控件 执行某种由程序控制的“方法”操作
• 大部分“方法”具有参数
• 尽量不要用变量代替连线
利用错误簇
错误解析
• 可以输入错误代码,查看LabVIEW对错误的解释
错误分支
界面设计原则: 清晰直观
• Labels (标签) – 简短说明 (程序框图中也会显示)
• Captions (标题) – 较长的说明
界面设计原则: 清晰直观
• 如有必要,可增加
说明信息