目录1LabVIEW软件及其基本设计原理简介........................................11.1LabVIEW简介.........................................................11.2LabVIEW软件设计基本原理...........................................12关于虚拟示波器的设计思路及方案的实现....................................32.1设计思路............................................................32.2方案的实现..........................................................32.2.1前面板的设计...................................................32.2.2设计的基本原理和设计步骤.......................................43设计心得................................................................94参考文献:.............................................................105程序调试过程中发现的问题和解决办法.....................................10武汉理工大学《能力拓展训练》报告书1基于LABVIEW的虚拟示波器设计1LabVIEW软件及其基本设计原理简介1.1LabVIEW简介LabVIEW(LaboratoryVirtualinstrumentEngineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。传统文本编程语言根据指令的先后顺序决定程序执行顺序,但LabVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。用户界面在LabVIEW中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。LabVIEW的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图。LabVIEW尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念。因此,LabVIEW是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。利用LabVIEW,可产生独立运行的可执行文件。1.2LabVIEW软件设计基本原理我们把用LabVIEW实现的一个完整的LabVIEW应用程序成为一个虚拟仪器,称为VI。所有的VI,它包括前面板、程序框图图以及图标/连结器三部分。1)前面板。前面板是图形用户界面,也就是VI的虚拟仪器面板,前面板直接面向用户,是用户使用虚拟仪器的基本操作面板。这一界面上有用户输入和显示输出两类对象,具体表现有开关、旋钮、图形以及其他控制和显示对象。一个典型实现正弦波显示和幅值调节的前面板如图1。武汉理工大学《能力拓展训练》报告书2图1正弦波显示及幅值调节VI前面板2)程序框图提供VI的图形化源程序。它的功能是对前面板上的控件进行定义、操作和连线以实现虚拟仪器的功能,是LabVIEW程序设计的核心。在程序框图中存在着对VI编程,以控制和操纵定义在前面板上的输入和输出。它包括前面板上的控件和控件的连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、结构和连线等。如果将VI与标准仪器相比较,那么前面板上的东西就是仪器面板上的东西,而流程图上的东西相当于仪器箱内的东西。在许多情况下,使用VI可以仿真标准仪器,不仅在屏幕上出现一个惟妙惟肖的标准仪器面板,而且其功能也与标准仪器相差无几。上述正弦波的程序框图如图2。图2正弦波显示及幅值调节VI程序框图武汉理工大学《能力拓展训练》报告书33)图标/连接器。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前面板的设计根据设计思路,设计成的前面板如图3所示。武汉理工大学《能力拓展训练》报告书4图3虚拟双踪示波器前面板2.2.2设计的基本原理和设计步骤1)通道CH1和CH2选择即波形产生。在程序框图上创建两个条件结构。把CH1和CH2的开关控制(布尔开关)分别接到这两个条件结构的条件输入端,然后在每个“真”条件下,并且通过再添加条件结构,在这个子条件结构里面,利用基本函数发生器创建波形产生模块,用文本下拉列表控制条件输入端,将正弦波、三角波、方波、锯齿波的固定值0、1、2、3设为四个分支,并在分置里面选择产生相应的波形,这样就产生了大条件结构的“真”操作,也即在CH1或CH2通道开的情况下,通过文本下拉列表控制波形产生。然后将外部条件结构的输出隧道在“假”的条件下,设为“未连接时使用默认”并且处理“假”分支,这样,当通道选择开关“关”时就不输出波形。程序框图如图4、图5所示,前面板显示效果如图6、图7、图8所示。武汉理工大学《能力拓展训练》报告书5图4通道打开时波形产生图5通道关闭时无输出图6CH1开、CH2关武汉理工大学《能力拓展训练》报告书6图7CH1关、CH2开图8CH1开、CH2开武汉理工大学《能力拓展训练》报告书72)波形显示控制部分。这部分是控制波形在波形图上更好的显示出来。控制CH1、CH2通道幅值,调节波形图上每单位表示多少电压值;控制时间扫描速率,调节时间轴上每单位表示多少时间。这些都是为了让波形以最直观、最清楚的方式显示在波形图上。通过公式子VI的功能改变输出电平和幅度偏移;通过获取波形成分、除法和创建波形改变输出的频率;通过创建一个子条件结构实现波形叠加。这些控制部分如图9所示,程序框图如图10所示。图9波形显示控制部分前面板武汉理工大学《能力拓展训练》报告书8图10波形显示控制部分程序框图3)输入信号测量值的显示部分。通过“获取单频信息”子VI获取波形频率;通过“幅值和电平测量”子VI获取波形幅值电压。设计的前面板如图11所示,程序框图如图12所示。图11测量参数显示图12测量参数模块程序框图4)停止测量部分。通过while循环的STOP按钮停止测量。程序框图如图13所示。武汉理工大学《能力拓展训练》报告书9图13while循环以及STOP按钮5)整个程序框图的设计图图14所示。至此为止设计全部完成。图14虚拟双踪示波器的整个程序框图3设计心得此次能力拓展训练设计规定时间在开学前完成,责任老师提供了整个暑假的时间给我们做。我个人的情况是暑假实习到8月中旬,回来之后又忙着准备一些武汉理工大学《能力拓展训练》报告书10考研复习,所以就耽搁了不少时间,直到8月底才开始做。首先我看了几本介绍虚拟仪器和LabVIEW方面的书籍,随即对这个软件强大的仿真功能产生了极大的兴趣,并且自己动手做了一些简单的仿真程序,比如利用调用for循环和移位寄存器计算数学递归公式、产生数字波形、建立数学计算的子VI等。做的程序渐渐从简单到难,学的东西也越来越多。直到这个设计完毕,除了这个设计里面的知识外,我还了解了公式节点的用法;滤波器的用法;图形编辑器的用法和子VI的建立过程及调用;掌握了while循环、for循环、条件结构循环的用法;初步了解了顺序结构的用法;了解了数据采集的基本知识;熟悉了写入测量文件及保存数据的基本操作、程序调试过程中的单步执行、断点设置以及探针工具的使用方法、延时程序的调用方法等等。刚开始我还觉得做能力拓展耽误了自己考研复习的时间,后来感觉到学了LabVIEW之后也很充实。也为自己能做出这个“不简单”的虚拟示波器而感到骄傲。在此过程中,板上的同学给了我不少帮助,比如他们把借的的资料给我看,还有一起动脑动手实现了某个困难的操作,这让我深深体会到团队协作的重要性和同学之间友谊的可贵。4参考文献[1]杨乐平,李海涛,杨磊编著.LabVIEW程序设计与应用(第二版).北京:电子工业出版社,2007[2]刘君华主编.基于LabVIEW的虚拟仪器设计.北京:电子工业出版社,2003[3]黄松林,吴静编著.虚拟仪器设计教程.北京:清华大学出版社,2008[4]陆绮荣编著.基于虚拟仪器技术个人实验室的构建.北京:电子工业出版社5程序调试过程中发现的问题和解决办法1)完成了一部分并查看波形的时候,发现波形向左移动的非常快,这样很不利于观察波形信号。通过查资料发现可以通过在前面板上添加时间延迟ExpressVI,设置程序循环延时时间可以解决这一问题。但是要在程序框图上添加并设置,这很不方便,后来发现模板上的VI波形图都可以均匀的慢速的向左移,经过对比发现,只要修改配置仿真信号的属性即可,具体操作时将定时区域的“以可达到武汉理工大学《能力拓展训练》报告书11的最快速度运行”取消,并勾选中“仿真采集时钟”。2)在选择CH1条件结构的“假”分支时,因为不用输出波形,所以我没有连接输出隧道,这是幸运星出现错误,这个错误是因为条件结构中多个分支的输出隧道公用输出。仅执行结构的某一帧时,各个帧必须给所有的输出赋值,不赋值时要使用默认。解决办法是右键单击隧道并选择“未连线时使用默认”,即可以满足该要求。3)幅值测量用模拟波形-波形测量里面的“幅值和电平”函数时发现,当北侧通道处于关的状态时发生了错误,显示的是“输入波形的大小为0”,这是因为这个函数测量模块当波形输入为0时就会发生错误。解决办法是将它替换为波形测量里面的“幅值和电平测量”子VI,这个子VI在输入波形为0时满足了输出幅值电平是0。