LabVIEW 大学实用教程
前言:为什么大学生要学LabVIEW?
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是美国国家仪器公司开发的一种图形化编程语言,常被称为“G语言”。

- 直观易学:对于不擅长传统文本编程(如C/C++)的工科生(如电子、自动化、测控、物理等)非常友好,通过拖拽图标和连线即可完成编程。
- 强大高效:内置大量用于数据采集、仪器控制、信号分析和数据可视化的函数库,能让你快速搭建测试测量系统。
- 行业认可:在自动化、测试测量、半导体、航空航天等领域应用广泛,掌握LabVIEW是进入相关行业的“硬通货”。
- 学术必备:是许多大学(尤其是自动化、电子信息类专业)的必修课,也是电子设计竞赛、智能车竞赛等科研竞赛的重要工具。
第一部分:入门基础
第1章:初识LabVIEW
-
LabVIEW的核心思想:虚拟仪器,它将传统仪器的三大功能——数据采集、数据分析、结果显示——用软件模块化实现。
- 前面板:就是仪器的“用户界面”,包含各种控件(如开关、旋钮、图表)和指示器(如LED、波形图、数值显示),这是用户与你程序交互的地方。
- 程序框图:就是仪器的“电路图”或“程序逻辑”,通过连接各种功能函数(节点)来定义控件和指示器之间的数据流,这是程序真正执行的地方。
-
安装与启动:
- 获取版本:NI官网提供学生版或试用版,对于学习足够,建议安装LabVIEW和NI-DAQmx驱动(用于数据采集卡)。
- 启动界面:创建新VI时,会自动生成前面板和程序框图两个窗口。
-
第一个程序:Hello World!
- 前面板:从“控件”选板中,拖拽一个“字符串指示器”到前面板。
- 程序框图:自动切换到程序框图,你会发现出现一个名为“字符串指示器”的端口。
- 编程:从“函数”选板中,找到“编程 -> 字符串 -> 格式化写入函数”,将其拖入框图,将“Hello, World!”这个常量拖入函数的“格式字符串”输入端,然后将“字符串指示器”的端口连接到函数的输出端。
- 运行:点击工具栏上的“运行”按钮(绿色箭头),前面板上的指示器就会显示“Hello, World!”,恭喜你,你的第一个LabVIEW程序诞生了!
第二部分:核心概念与编程
第2章:数据类型与数据流
-
数据类型:LabVIEW中的每个控件都有对应的数据类型。
(图片来源网络,侵删)- 数值:最常用,包括整数、浮点数、复数等。
- 布尔:代表“真/假”,用于开关、按钮。
- 字符串:一串字符。
- 数组:相同类型数据的集合。
- 簇:不同类型数据的集合,类似C语言的结构体。
- 波形:专门用于测量数据的数据类型。
-
数据流:这是LabVIEW编程的灵魂,程序框图中的节点只有在所有输入端口都有数据时才会执行,执行完后将结果送到所有输出端口,数据沿着“连线”流动。
第3章:程序结构
这是编程逻辑的核心,相当于传统语言中的 if-else, for, while 等。
-
While 循环:
- 作用:只要满足条件,就不断重复执行内部代码。
- 关键:必须有一个条件终端来决定何时停止,通常是“i < N”或者直接用一个“停止按钮”的布尔值来控制。
- 技巧:右键点击循环边框,可以添加“移位寄存器”,用于在循环之间传递数据。
-
For 循环:
(图片来源网络,侵删)- 作用:执行固定次数的循环。
- 关键:有一个计数终端
N,表示循环次数。 - 自动索引:当循环的数组连接到其边框时,可以右键点击隧道,选择“启用索引”,循环会自动逐个取出数组元素。
-
条件结构:
- 作用:相当于
if-else或switch-case语句。 - 使用:它会根据输入的值(通常是布尔值或整数)来选择执行哪一个“分支”,可以拖动分支选择器来查看或编辑不同的代码。
- 作用:相当于
-
事件结构:
- 作用:高级结构,用于响应用户在前面板上的操作(如点击按钮、改变数值),比轮询(不断检查按钮状态)更高效。
- 使用:为不同的事件(如“值改变”、“鼠标按下”)编写不同的处理代码。
第4章:子程序与模块化编程
- 子VI:相当于传统语言中的函数或子程序,将一段常用代码打包成一个可重用的模块。
- 创建子VI:
- 在程序框图中选中你想要封装的代码。
- 右键 -> 创建 -> 子VI。
- 系统会自动打开一个新的窗口,让你定义这个子VI的“图标”(前面板左上角的小图)和“连接器”(定义输入输出端口)。
- 使用子VI:创建后,它就像一个普通的函数节点一样,可以被拖拽和调用,这是编写大型、复杂程序的必备技能。
第三部分:数据采集与仪器控制
这是LabVIEW最强大的应用领域,也是大学科研和竞赛的核心。
第5章:数据采集
- 硬件准备:你需要一块NI的数据采集卡,如USB-6000系列,或者使用学校实验室的采集设备。
- 软件配置:安装好 NI-DAQmx 驱动。
- DAQ Assistant (DAQ助手):
- 最简单的方式:在程序框图中右键 -> 测量 I/O -> DAQmx -> DAQ Assistant。
- 它会弹出一个图形化配置向导,引导你选择物理通道(如AI 0,表示模拟输入通道0)、输入类型(电压、温度等)、采样率、采样数等。
- 配置完成后,DAQ助手会自动生成一个包含所有配置的复杂节点,非常适合快速上手。
- DAQmx VIs:
- 更专业、更灵活的方式:直接使用“函数”选板下的“测量 I/O -> DAQmx”中的函数,如
DAQmx Create Virtual Channel.vi,DAQmx Timing.vi,DAQmx Start Task.vi,DAQmx Read.vi等。 - 这种方式代码更清晰,性能更好,是工业界和复杂项目中的标准做法。
- 更专业、更灵活的方式:直接使用“函数”选板下的“测量 I/O -> DAQmx”中的函数,如
示例:采集一个模拟电压信号并在波形图上显示
- 在程序框图中放置一个While循环。
- 在循环内放置一个DAQ Assistant节点,配置为“模拟电压输入”。
- 从函数选板拖入一个“波形图”到前面板,并将它的端口连接到DAQ Assistant的“读取”输出端。
- 在循环中放置一个“等待(ms)”函数,控制采样率。
- 运行程序,你就能实时看到电压波形了。
第6章:仪器控制
使用LabVIEW控制各种标准仪器,如示波器、信号发生器、万用表等。
- 总线接口:仪器通常通过 GPIB (IEEE-488)、VXI、PXI 或更现代的 USB、LAN (LXI) 接口连接到电脑。
- VISA (Virtual Instrument Software Architecture):
NI提供的标准I/O API,用于与各种仪器通信,它是一种统一的接口,不管你用的是GPIB还是USB仪器,都使用相同的VISA函数。
- VISA函数:
- VISA配置资源:打开与仪器的连接。
- VISA写入:向仪器发送命令(如
*IDN?是让仪器返回其身份识别信息)。 - VISA读取:从仪器读取返回的数据。
- IVI (Interchangeable Virtual Instruments):
更高级的驱动技术,允许你在不修改程序的情况下,更换同类型的仪器(从Agilent的示波器换成Tektronix的示波器)。
第四部分:高级主题与最佳实践
第7章:文件I/O
如何将数据保存到文件或从文件读取。
- 写入测量文件 (.lvm):最简单的方式,专为测量数据设计,可以保存时间戳、波形等信息,用Excel或记事本都能打开。
- 电子表格文件 (.txt, .csv):适合保存简单的二维表格数据。
- 二进制文件:读写速度最快,文件体积小,但可读性差。
第8章:状态机
一种非常强大的程序设计模式,尤其适用于有多个操作步骤或状态的系统(如一个完整的测试流程)。
- 结构:一个While循环 + 一个枚举型变量(用于表示当前状态)+ 一个条件结构(根据枚举值选择执行哪个状态的代码)。
- 优点:逻辑清晰,易于扩展和维护。
第9章:最佳实践
- 图标与连接器:为每个子VI设计清晰、简洁的图标和连接器,方便他人(和未来的你)理解。
- 禁用调试:程序开发完成后,点击“工具 -> 选项 -> 性能 -> 允许调试”并取消勾选,可以显著提高程序运行速度。
- 错误处理:使用“错误输入/输出”函数簇来处理程序中可能出现的错误,使程序更健壮。
- 善用注释:在复杂的程序框图旁添加“自由标签”作为注释,解释代码的功能。
学习路径与资源推荐
大学生学习路径建议
- 第一阶段(1-2周):基础入门
- 目标:熟练掌握前面板和程序框图的创建,理解数据流。
- 练习:完成所有内置示例,尝试用While循环和For循环做一些简单的数学计算(如求和、阶乘)。
- 第二阶段(2-4周):核心编程
- 目标:熟练使用各种程序结构,学会创建和使用子VI。
- 练习:用状态机模式设计一个简单的虚拟仪器,比如一个可以切换“温度计模式”和“信号发生器模式”的程序。
- 第三阶段(1-2个月):实践应用
- 目标:掌握数据采集和仪器控制。
- 练习:连接学校的采集设备,完成一个完整的实验数据采集与分析项目,采集一个正弦波,进行FFT(快速傅里叶变换)分析,并显示频谱。
- 第四阶段(长期):进阶与项目
- 目标:学习高级主题,参与实际项目或竞赛。
- 练习:尝试使用FPGA模块、实时模块,或者参加“全国大学生智能汽车竞赛”、“电子设计竞赛”等。
推荐资源
- 官方资源(首选):
- LabVIEW帮助:按
F1或在菜单栏选择“帮助 -> LabVIEW帮助”,这是最权威、最全面的文档。 - NI示例查找器:在启动界面或“帮助 -> 查找示例”中,有海量的官方示例,是学习函数用法的最佳途径。
- NI官网:提供大量教程、白皮书和社区论坛。
- LabVIEW帮助:按
- 在线视频课程:
- YouTube:搜索 "LabVIEW Tutorial",有很多高质量的免费教程。
- Bilibili (B站):国内有很多优秀的UP主分享的LabVIEW入门到精通的视频,非常适合中国学生。
- 书籍:
- 《LabVIEW 8.20基础教程》(或更新的版本):经典的入门教材。
- 《LabVIEW虚拟仪器程序设计从入门到精通》:内容更全面,适合进阶。
- 社区与论坛:
- NI Community (forums.ni.com):官方国际论坛,高手云集。
- 中国LabVIEW联盟论坛:国内最大的LabVIEW技术社区,非常活跃。
祝你学习顺利,用LabVIEW创造出属于自己的精彩项目!
