用 LabVIEW 制作示波器和波形发生器

Deyang Zeng

简介

LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是由美国国家仪器公司(National Instruments)开发的一款图形化编程平台,主要用于数据采集、仪器控制和工业自动化等领域。其核心特点是使用 “数据流” 编程模型,通过连接图标和连线的方式构建程序,而非传统的文本代码。

主要特点:

  1. 图形化编程:使用 G 语言,通过框图(Block Diagram)和前面板(Front Panel)设计程序,直观易学。
  2. 硬件集成:支持与多种硬件设备(如 DAQ 卡、PXI、GPIB 等)无缝连接,便于实时数据采集和控制。
  3. 广泛应用:常用于测试测量、自动化控制、信号处理、教育科研等领域。
  4. 丰富的函数库:提供大量内置函数和工具箱,用于数据分析、信号生成、滤波等操作。

典型应用:

  • 构建虚拟仪器(如示波器、频谱分析仪、波形发生器等)
  • 工业自动化与监控系统
  • 实时控制系统
  • 学术实验与科研项目

准备工作

内容简述

这一篇博客,我们用 LabVIEW 搭建一个简单的示波器和波形发生器。掌握基本技能后你也能自己设计各种虚拟仪器。
系统版本:Windows 10 Workstation 22H2
软件版本:LabVIEW 2025 Q3 专业版 (64 位)

软件安装

2019 年 NI 推出可以非商用免费使用的 LabVIEW 社区版,建议直接去 NI 官网注册账号后下载:LabVIEW 下载链接由于我的电脑上不知怎的出现了已经激活的全套专业版,所以就顺手拿来用了。


波形发生器

概览

我们要制作的波形发生器前面板如下:

所谓前面板,即仪器的外观面板,你想把仪器设计成什么样子,各种按键、旋钮的摆放,整体配色等等,都在这里修改。

程序面板:

所谓程序面板,即仪器的逻辑实现面板,在这里进行图形化编程,实现各种功能。

简单入门——电源键

我们打开 LabVIEW,创建一个空白 VI(Virtual Instrument),

会自动弹出前面板和程序面板。

在前面板空白处单击右键,弹出控件选板,可以在里面选择不同风格的按键、旋钮。对应地,程序面板空白处单击右键,弹出函数选板。一般地,在前面板的控件选板中选中控件,拖入面板中后,会在程序面板生成该控件对应的函数,例如我们在前面板添加一个按钮,在程序面板则会同步出现一个函数组件,这是一个布尔类型变量,

我们将这个变量连接上 While 结构框的循环控制条件,

就实现了这个按钮按下后,while 循环框内的内容开始循环的效果,显然这可以当成仪器的电源键。

从前面板开始

创建一个虚拟仪器,我个人的习惯是从前面板开始,从产品定位以及最基本的功能出发,逐步扩展或优化功能。首先,一个波形发生器的最基本的功能是输出波形,所以要有输出波形的端口,虚拟仪器通过主机或者笔记本的端口输出。其次,我们可以将这个波形展示出来,那么就要一个屏幕。之后,我们可以选择不同的波形,再然后,选择波形的各种参数 …… 假想自己是用户,如何更方便地操作仪器实现功能,逐步构建出前面板。然后将这些控件排列整齐,自己设计按钮、屏幕的大小、位置等等。我的波形发生器前面板:

分别包含了这些功能的交互区域:

  1. 波形显示
  2. 波形选择
  3. 波形参数调节
  4. 波形参数显示
  5. 附加波形
  6. 波形输出

对应的,我的波形发生器程序面板如下:

也分别对应了这 6 个功能。

外围结构

可以看到外围为两个结构框,一个开始按钮连接 case structure 包 while loop,这两个函数均在 structures 类里,表明一旦点击开始按钮,case structure 内的内容便执行,即进行 while 循环。

内部功能

我们在内部再添加一个 case structure,右键点击方框顶部的 selector label,可以添加 case,

下方还有多个选项进行 case 管理,这样就做好了一个多选择 case structure,可以连接上前面板中拉出来的菜单选择器对应的函数。

每一个 case 对应的方框中的信号流程都不同,需要依次连接,例如在我的波形发生器的程序面板中,主波形选择方框中不同 case 的方框放置了不同类型的仿真波形,以此实现波形选择的功能。

LabVIEW 的核心特点是 “数据流” 编程,可以看到,波形信号(蓝色线条)从主波形框中产生,再经过附加波形框,进入了 ** 波形图表 ** 和 **DAQ 助手 ** 两个端口中,DAQ 助手是与数据采集卡相关的函数组件,分别实现了波形显示与波形输出功能。

图中左侧的橙色组件,为前面板的旋钮控件对应的函数,前面版旋钮选择数据后通过这个控件传入程序面板,这里将其接入了仿真信号中,设置仿真信号的参数。为了,显示这些信息,我们可以直接再拉出一条信号线接入测量组件中得到波形参数数据,这里我们可以通过创建 Property Node 中的 value,

直接调用这些值,然后输入显示面板对应的函数组件,即程序面板中的测量框中的内容。

这样就简单地制作了一个波形发生器虚拟仪器,配合笔记本电脑或主机的端口,能够实现一个真正的波形发生器的功能。


示波器

概览

既然是设计自己的虚拟仪器,那么无需考虑成本,再大胆也无妨,甚至设计过四个屏幕的波形发生器,之前的设计图:


我们要制作的示波器前面板和程序面板如下:


可以看到这里我给示波器设计了两个屏幕.

示波器的基本功能就是显示波形,所以大大的主屏就用来显示原本的波形,并提供了波形参数的测量手段和显示窗口以及窗口操作方式。此外,还额外增加了对原始波形进行加窗、滤波、变换三个信号处理方式,处理后的波形就显示在副屏上。额外地,增加了一个导出图像的功能,能够将主屏或副屏的图像保存为到本地。

功能实现

观察深蓝色的数据流,这是外部输入的待显示、处理的信号数据。首先是一条支线直接连接到了主屏,另一条支线通过动态数据转换组件转换为数组后,进行加窗、滤波、变换操作。

值得注意的是,通过修改主屏坐标轴范围实现对主屏窗口的移动,这里也是采用 Property Node 实现,

例如,如果我们在前面板加入一个屏幕:

那么右键单击程序面板中对应的函数组件,依照此路径就可以创建一个控制 X 轴最大值的 Property Node:

这里的 AS 和 RS 分别代表 Autoset 和 Reset,均是通过对四个前面板输入量的反向输入,实现对主屏窗口的操作:

拆开来看,其实利用 LabVIEW 创建一个虚拟仪器非常简单,软件本身就集成了很多非常强大的功能,只需要搭积木一样将其按照自己的想法组合起来即可。

  • Title: 用 LabVIEW 制作示波器和波形发生器
  • Author: Deyang Zeng
  • Created at : 2025-11-17 00:00:00
  • Updated at : 2026-03-26 17:09:51
  • Link: https://hexo.io/2025/11/17/2025-11-17-labview-vi/
  • License: All Rights Reserved © Deyang Zeng