内蒙古科技大学
本科生课程设计论文
题 目:虚拟示波器设计
姓 名: 余 凯
学 号: 1067106234
专 业: 自动化
班 级: 二 班
指导教师: 肖俊生
2013年 12月 5 日
一、设计题目:虚拟示波器的设计
二、设计目的:
1、了解示波器的相关原理及使用方法。
2、学习数据采集卡的使用。
3、 掌握虚拟仪器的设计思想和方法。
4、熟悉掌握labview软件语言的编程及使用。
三、设计要求:
1、运行、停止
2、可显示两路图形,X、Y轴调整
3、显示模式:单通道、多通道模式,运算模式(两通道相加、两通道相减等)。
4、测量:频率、周期、幅值、上升时间、占空比等参数
5、高级功能:FFT、存储、网络等
四、设计思路:
虚拟示波器的主要功能是对采集到的数据进行实时显示,并完成对对输入信号的电压、频率和周期等参数的测定,对原始信号进行滤波、频谱分析,并能显示处理后的波形。由于LabVIEW是基于模块化程序设计的思想,因此在开发过程中也应遵循这一思想。在总体方案确定后,根据不同功能分别组件个功能模块,最后再集成和调试。软件总体包括通道选择、波形显示、电压测量、功率测量等模块,最终实现开发一个能够对多种控制参数进行设置、实时采集、处理、显示的虚拟示波器。
五、设计实现过程:
1.简介
虚拟仪器(VI-ViItuaIInstrument)是指通过应用程序将通用计算机与功能化硬件结合起来,用户可通过友好的图形界面操纵计算机,就像在操纵自己定义、自己设计的单个仪器一样,从而完成对被丈量的采集、处理、分析、判定、显示、数据存储等。在这种仪器系统中,各种复杂测试功能、数据分析和结果显示都完全由计算机软件完成,在很多方面较传统仪器有无法相比的优点,如使用灵活方便、测试功能丰富、价格低廉、一机多用等,这些使得虚拟仪器成为未来电子丈量仪器发展的主要方向之一。
虚拟示波器与传统的示波器相比,其优点主要体现在:
1) 价格便宜,节省实验经费。
2) 采用图形化编程语言LabVlEW,软件开发效率高,可操作性和可维护性好。可以通过软件编程形成增加或修改仪器功能。
3) 虚拟示波器具有开放性,能够通过升级采集卡来提高其性能。
2.数据采集模块设计
数据采集模块是虚拟示波器软件的核心,主要完成数据采集的控制,包括对设备号、通道号、信号连接方式、采样率、采样点数及采样方式的设置和控制。
数据采集模块中用到的主要VI节点有:DAQmx创建通道节点、DAQmx采样时钟VI实例、DAQmx开始任务节点、DAQmx读取节点、DAQmx停止任务节点和DAQmx消除任务节点,使用到的程序结构为While循环结构。
数据采集程序框图设计如下图:
3.信号测量模块的设计
对信号进行采集后,需要对信号进行一定的处理,如对洗好进行测量、滤波处理及频谱分析。波形测量模块应可以测量直流和交流两种电压信号。对于直流信号只需要测量他的直流电压值,对于交流信号主要完成对电压波形的频率、周期、最大值、最小值、峰峰值和均方值等参数的测量,并且能够显示测量值。在测量前首先选择被测信号,这可以通过LabVIEW中的条件结构来是实现。
信号产生之后自然而然就要对其进行采集和发送,而完成信号采集和发送任务的则是两个DAQ助手的子模块,以下就是完成对信号采集和发送的两个程序:
在做信号采集是一定得注意利用信号合并模块()把两路信号合并过后同时采集,DAQ写模块的参数也得设定成多通道,最后还得利用属性节点对应信号频率的变化实时修改采集信号的采样率。
仿真信号基本参数设置:
首先,在前面板中做一个“上凸盒”。
在前面板中,点击右键,从“Express”中的“数值输入控件”中,选择“旋钮输入控件”,将其拖入前面板中,总共需要的旋钮,并分别命名为“频率”、“幅值”、 “周期”、“占空比”。
信号采集程序框图设计如下图;
4.频谱分析模块设计
频域分析可以将复杂的信号分解成单一的频率成分,因此一些在时域中难以分析的信号,在频域中他的特征可以看得一目了然。通过频谱分析模块可以观察波形的幅度谱和相位谱,这里采用LabVIEW中的FFT频谱VI节点来计算信号的频谱。
5.波形显示模块设计
波形显示模块的功能是对采集到的信号进行实时显示,并能显示经过处理后的波形,还能进行时间、幅值调节。
6.完整的程序框图的前面板
完成各个功能模块的设计,将各个模块放置于While循环内,并进行连线,将各个模块组织起来,就构成了完整的示波器程序框图。
在进行各模块的设计时,每设计一个模块,都要针对每个模块进行一个简单的调试,以初步验证所设计的模块能否达到设计的要求。通过对模块进行调试可以将模块内的错误清除。在完成整个程序设计后,需要进行最终调试,可以使用LabVIEW提供的各种工具进行调试,只有将模块内部错误清除,才能减轻最终程序调试的难度。
调试完成后,需要对前面板进行必要的设计。示波器的前面板就是人机交互界面,即用户进行各项操作的界面,用于设置输入设置和观察输出量。在设计前面板时,主要考虑界面美观、操作简捷方便,用户可以通过前面板上的开关和旋钮模拟传统仪器的操作,通过键盘和鼠标实现虚拟示波器的控制。完成示波器前面板的框图如下:
六、设计心得:
这门课的学习使我又学到了一门新的知识,虽然不是很精通,最起码有了基础。通过本次设计,对我影响最深的就是查阅大量的资料了,因为我们初学这门课,而且要做好一门设计,必须熟练软件的各项功能和应用,还有就是在学习中带着问题去学习效率会很高,这是我的又一收获。在做设计前要有一个清晰的思路,在设计时要不断的修改和完善。这次设计也是我发现自己的不足,就是理论太差,在实践中遇到的问题更多,会浪费很多时间,所以学好理论也是非常重要的。通过本次设计我意识到了理论和实践的重要性,学会了耐心。
课程设计是我们专业课程知识综合应用的时间训练,给我很多专业知识以及专业技能上的提升。我认为,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
第二篇:LabView虚拟示波器实验报告
一、实验目的
1、掌握虚拟仪器的设计思想和方法;
2、掌握labVIEW编程、调试等技能;
3、学习“波形图”控件各种复杂功能的使用;
4、学习数据采集卡的使用。
二、 实验设备
1、计算机;
2、labVIEW8.5软件;
3、PLC-6221数据采集卡及集线盒;
三、 实验步骤
1、硬件设计
计算机、PLC-6221、集线盒、导线等
2、软件设计
数据连续采集(AI)、数据处理、显示
主要功能:
1、运行、停止;
2、可显示两路以上波形,X,Y轴调整;
3、显示模式:单通道、多通道模式、运行模式;
4、测量:频率、周期、幅值:
5、高级功能:FFT、储存、网络等。
基于LABVIEW的虚拟示波器设计
1 LabVIEW软件及其基本设计原理简介
1.1 LabVIEW简介
LabVIEW(Laboratory Virtual instrument Engineering)与 C 和BASIC 一样,LabVIEW也是通用的编程系统,有一个完成任何编程任务的庞大函数库。LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据。LabVIEW标志显示及数据存储,等等。LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而 LabVIEW 则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI指虚拟仪器,是 LabVIEW 的程序模块。
LabVIEW 提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。用户界面在 LabVIEW 中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。LabVIEW 的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。
1.2 LabVIEW软件设计基本原理
我们把用LabVIEW实现的一个完整的LabVIEW应用程序成为一个虚拟仪器,称为VI。所有的VI,它包括前面板、程序框图图以及图标/连结器三部分。
1)前面板。前面板是图形用户界面,也就是VI的虚拟仪器面板,前面板直接面向用户,是用户使用虚拟仪器的基本操作面板。这一界面上有用户输入和显示输出两类对象,具体表现有开关、旋钮、图形以及其他控制和显示对象。一个典型实现正弦波显示和幅值调节的前面板。
2) 程序框图提供VI的图形化源程序。它的功能是对前面板上的控件进行定义、操作和连线以实现虚拟仪器的功能,是LabVIEW程序设计的核心。在程序框图中存在着对VI编程,以控制和操纵定义在前面板上的输入和输出。它包括前面板上的控件和控件的连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、结构和连线等。如果将VI与标准仪器相比较,那么前面板上的东西就是仪器面板上的东西,而流程图上的东西相当于仪器箱内的东西。在许多情况下,使用VI可以仿真标准仪器,不仅在屏幕上出现一个惟妙惟肖的标准仪器面板,而且其功能也与标准仪器相差无几。
上述正弦波的程序框图如图1。
图1 正弦波显示及幅值调节VI程序框图
3)图标/连接器。VI具有层次化和结构化的特征,一个VI可以作为子程序,这里称为子VI,被其他VI调用。图标与连接器在这里相当于图形化的参数。LabVIEW的强大功能归因于它的层次化结构,用户可以把创建的VI程序当作子程序调用,以创建更复杂的程序,而这种调用的层次是没有限制的。
在VI设计过程中,可以利用工具选板、前面板中的控件选板、程序框图中的函数选板进行设计。这些选板的详细功能及用法通过不断的学习设计VI的过程逐渐地掌握。
2 关于虚拟示波器的设计思路及方案的实现
2.1 设计思路
本设计的想法是尽量与现实中的面板相一致,实现示波器最基本的显示和调节功能。所以本设计我设计了包含CH1和CH2的双通道示波器,即双踪示波器。设计时考虑的是分几个部分:
1)CH1和CH2通道设计及选择。设置两个开关控制CH1和CH2选通状况,开即显示波形,关不显示,同时选择了开就在波形图上同时显示两个波形。
2)波形产生。由于没有外界信号输入设备,所以不能用外部数据采集的方法输入信号波形,那么自己设计一个建议信号发生器,使两个通道都能实现基本模拟信号正弦波、三角波、方波、锯齿波的输入。
3)波形显示。采用波形图控件。
4)波形控制部分。包括CH1信号幅度调节和幅度偏移、CH2信号幅度调节和幅度偏移、时间扫描速率、同时开的时候两个信号叠加开关。
5)停止示波器。通过while循环的停止按钮设置示波器停止工作。
2.2 方案的实现
2.2.1 前面板的设计
根据设计思路,设计成的前面板如图2所示。
图2 虚拟双踪示波器前面板
2.2.2 设计的基本原理和设计步骤
1)通道CH1和CH2选择即波形产生。在程序框图上创建两个条件结构。把CH1和CH2的开关控制(布尔开关)分别接到这两个条件结构的条件输入端,然后在每个“真”条件下,并且通过再添加条件结构,在这个子条件结构里面,并在分置里面选择产生相应的波形,这样就产生了大条件结构的“真”操作,也即在CH1或CH2通道开的情况下,通过文本下拉列表控制波形产生。然后将外部条件结构的输出隧道在“假”的条件下,设为“未连接时使用默认”并且处理“假”分支,这样,当通道选择开关“关”时就不输出波形。如图3所示。
图3
2)波形显示控制部分。这部分是控制波形在波形图上更好的显示出来。控制CH1、CH2通道幅值,调节波形图上每单位表示多少电压值;控制时间扫描速率,调节时间轴上每单位表示多少时间。这些都是为了让波形以最直观、最清楚的方式显示在波形图上。如图4、5所示。
图4 波形显示控制部分前面板
图5 波形显示控制部分程序框图
3)输入信号测量值的显示部分。通过“获取单频信息”子VI获取波形频率;通过“幅值和电平测量”子VI获取波形幅值电压。设计的前面板如图6所示,程序框图如图7所示。
图6 测量参数显示
图7 测量参数模块程序框图
4) 停止测量部分。通过while循环的STOP按钮停止测量。程序框图如图8所示。
图8 while循环以及STOP按钮
5)整个程序框图的设计图图9所示。至此为止设计全部完成。
图9 虚拟双踪示波器的整个程序框图
3 设计心得
此次labVIEW虚拟示波器的设计,首先我看了几本介绍虚拟仪器和LabVIEW方面的书籍,随即对这个软件强大的仿真功能产生了极大的兴趣,并且自己动手做了一些简单的仿真程序,比如利用调用for循环和移位寄存器计算数学递归公式、产生数字波形、建立数学计算的子VI等。做的程序渐渐从简单到难,学的东西也越来越多。直到这个设计完毕,除了这个设计里面的知识外,我还了解了公式节点的用法;滤波器的用法;图形编辑器的用法和子VI的建立过程及调用;掌握了while循环、for循环、条件结构循环的用法;初步了解了顺序结构的用法;了解了数据采集的基本知识;熟悉了写入测量文件及保存数据的基本操作、程序调试过程中的单步执行、断点设置以及探针工具的使用方法、延时程序的调用方法等等。刚开始我还觉得做能力拓展耽误了自己学习的时间,后来感觉到学了LabVIEW之后也很充实。也为自己能做出这个“不简单”的虚拟示波器而感到骄傲。在此过程中,班上的同学给了我不少帮助,比如他们把借的的资料给我看,还有一起动脑动手实现了某个困难的操作,这让我深深体会到团队协作的重要性和同学之间友谊的可贵。
4 参考
Search Examples》Demonstrations》Instrument I/O》 Two-Channel Oscilloscope
5 程序调试过程中发现的问题和解决办法
1)完成了一部分并查看波形的时候,发现波形向左移动的非常快,这样很不利于观察波形信号。通过查资料发现可以通过在前面板上添加时间延迟Express VI,设置程序循环延时时间可以解决这一问题。但是要在程序框图上添加并设置,这很不方便,后来发现模板上的VI波形图都可以均匀的慢速的向左移,经过对比发现,只要修改配置仿真信号的属性即可,具体操作时将定时区域的“以可达到的最快速度运行”取消,并勾选中“仿真采集时钟”。
2)在选择CH1条件结构的“假”分支时,因为不用输出波形,所以我没有连接输出隧道,这是幸运星出现错误,这个错误是因为条件结构中多个分支的输出隧道公用输出。仅执行结构的某一帧时,各个帧必须给所有的输出赋值,不赋值时要使用默认。解决办法是右键单击隧道并选择“未连线时使用默认”,即可以满足该要求。
3)幅值测量用模拟波形-波形测量里面的“幅值和电平”函数时发现,当北侧通道处于关的状态时发生了错误,显示的是“输入波形的大小为0”,这是因为这个函数测量模块当波形输入为0时就会发生错误。解决办法是将它替换为波形测量里面的“幅值和电平测量”子VI,这个子VI在输入波形为0时满足了输出幅值电平是0。
虚拟仪器课程设计
报告
题目:双通道虚拟示波器
姓名:张彦吉
学号:1067106210
班级:10自动化2班
指导教师:肖俊生