基于虚拟仪器的虚拟实验应用研究
2015-08-26苏培华
苏培华
(西安外事学院 陕西 西安710077)
实验是人类认识世界的一种重要方法, 与理论教学相比,在直观性、实践性和创新性方面实验教学更具优势。 然而传统的实验教学模式中往往发生一些不尽如人意的情况,如受时间和空间的制约严重、实验场地和设备不足、实验经费投入不足、师资配备不足、实验内容、教学方式陈旧等。 为了解决上述问题,各种不同的实验方法应运而生,随着虚拟实验技术的出现和发展,将虚拟实验应用于实际工作开始成为它的发展方向。 目前很多国内外组织都已经开展了虚拟实验系统的研究和建设工作,特别是在一些著名的大学和研究所中,已经建好并投入使用了一些虚拟实验系统,而且这项工作在国外的开展情况优于国内。
LABVIEW 是NI[1]公司研发的一套开发平台软件,主要是实现虚拟仪器的软件开发,与其他程序设计软件不同,它是一种图形化的编程语言—又被形象地称为G 语言[2],顾名思义,它能够以更加直观的编程方式、更加多样的表达分析功能,更加快捷地为用户构建自己所需的虚拟仪器。 特别是在进行原理研究、设计、测试和仪器实现等方面,作为一种面向用户的编程工具,LABVIEW 可以帮助使用者提高工作效率[3]。 因此,LABVIEW 被广泛地应用于教育界、学术界、工业界和各级实验室,并被视为数据采集和仪器控制的标准软件。
由于LABVIEW 采用的是这种直观的图形编程方式,它能够将其他编程语言繁琐的语言编程程序简化成为利用菜单提示方式进行功能选择,并且各种功能只需要用线条连接,操作简便可行, 初学者亦很好掌握, 深受专业用户及新手的青睐。与传统的编程语言相比,图形编程方式能够节省八成以上的开发设计时间,但程序运行速度却基本不受影响,具有极高的效率。 此外,利用LABVIEW 开发的虚拟仪器产品,用户可以方便地根据实际需要重构新的仪器系统[4]。
1 使用LABVIEW 设计虚拟仪器的方法
作为一种图形化的编程语言, 在使用LABVIEW 编程时基本上不需要进行代码的编写, 取而代之的是使用流程图来进行程序的编写[5],利用对专业术语、图标和各种概念的熟悉认知,LABVIEW 为用户提供了实现数据采集系统和仪器编程系统虚拟化的便捷途径。
LABVIEW 图形化程序设计的方法是在面向对象技术及数据流技术的基础上进行开发设计的, 不同对象间的数据流决定了程序的执行顺序, 这与其他传统程序设计语言中的使用的线性执行顺序有所不同, 除此之外用户还可以通过连接不同功能模块实现应用程序的快速开发。 大家所熟知的传统控制流程执行部分在此被形象地图形化描述为边界结构,用户利用应用程序生成器即可方便地生成虚拟仪器, 具体程序设计步骤如下[6]:
1) 确定设计方案。用户利用专业知识对所需设计的虚拟仪器进行总体功能设计, 力求使虚拟仪器具有实际仪器的所有功能。
2) 根据功能建立前面板。 利用LABVIEW 的控制模块,从中选择对象, 按设计方案及实际仪器面板布局进行虚拟仪器前面板的确立。
3) 确立程序设计流程图。 鉴于LABVIEW 的流程图是图形化的, 用户可以方便的从功能模块上选择实现方案功能的各图标对象,并使用连线进行连接,从而实现不同对象间的数据传递。
4) 数据流程序设计。 各模块中的数据流即程序的执行顺序。
5) 模块化设计。 同其他高级语言相同,LABVIEW 在建立虚拟仪器时采用的是模块化的设计方案, 也就是说, 利用LABVIEW 设计的虚拟仪器既可以独立运行,也可以被作为其他虚拟仪器的一部分来使用。 这样可以对模块进行自我补充,为以后的使用带来方便,更进一步提高了开发设计的效率。
鉴于以上设计方法,文中仅以虚拟示波器为例,简单介绍使用LABVIEW 建立虚拟实验仪器的过程。 其他虚拟仪器的创建方法可按照该方法进行扩展, 最终构建出满足用户使用要求的、具有完整功能的虚拟实验系统。
2 基于虚拟仪器的实验设备开发过程
为保证设计开发的虚拟示波器具有传统示波器应有的功能,首先确定虚拟示波器应具有以下功能[7]:
1)电压幅值的测量。 即可以测量直流信号、交流信号的电压幅值。
2)信号频率的测量。 即可以测量交流信号的周期,并以此换算出交流信号的频率。
3)波形的显示。 即可以在虚拟示波器前面板上显示交流信号的波形如正弦波,方波等。
4)单通道测量。 即两个通道可以分别进行信号测量。
5)双通道测量。 即可以在屏幕上同时显示两个信号的波形,也就是双踪测量功能。
为了实现上述功能, 示波器前面板应具有相应功能按钮,具体设计如下:电源按钮,扫描速度旋钮,电压选择旋钮,上下调整旋钮,左右调整旋钮,电压标准旋钮,扫描速度标准旋钮,为同步旋钮,为亮度调整旋钮,为聚焦调整旋钮以及各种功能选择键等。
在对虚拟示波器功能设计后, 开始利用LABVIEW 进行虚拟示波器的图形化设计。 虚拟仪器创建首先从前面板的创建开始, 前面板的设计中需要将虚拟示波器的全部功能具体体现出来,在对功能明确之后再进行程序框图的编写。在本次设计中,需要使用数据变量初始化,选择结构设计,循环结构设计以及部分的数据处理函数, 这写程序设计思路同其他高级编程语言类似,只是将代码转化成了更易于理解的图形。同时还要用到LABVIEW 为用户提供的各种控件, 如信号生成控件VI、旋钮控件VI 等。 最后,在程序框图的编写过程中,还需要自行创建多个LABVIEW 子VI, 通过集成控件及自行设计子用于各虚拟元器件部分功能的实现。
按照LABVIEW 的开发过程, 首先设计虚拟示波器的前面板。模仿实际示波器前面板,这里设计了各种按钮、旋钮、图形对象、控制对象,并设计出显示区域,通过鼠标键盘等输入设备以及各种旋钮设置输入振幅, 频率偏移以及交流直流判断等输入值并最终在虚拟现示屏上观察输出量。 通过点击工具模板上的控件可以增减按钮及旋钮的数量, 位置也可以自己设置, 双击操作工具或标签工具中的数值栏可以改变数字控制中输入值, 从而实现虚拟示波器前面板的功能按钮分布及功能参数修改,真正实现与实际示波器的功能对接。参照实体示波器进行位置调整后,虚拟示波器的前面板如图1 所示。
图1 虚拟双踪示波器前面板Fig. 1 Front panel of the virtual oscilloscope
其次进行虚拟示波器的程序框图设计。具体过程如下:在前面板窗口中点击主菜单windows,并从中选择程序框图,这样既可切换到框图程序窗口, 该窗口可以显示出与前面板对象对应的各个端口。 根据示波器实际功能各变量之间的相互关系,在功能模板中找到实现该功能所需的节点,然后将节点图标放置到框图程序窗口中并用数据连线将所需各端口以及相应节点的图标连接起来(一定要注意端口,节点之间的数据流),这样一个完整的框图程序就完成了。 这一部分充分体现出了LABVIEW 作为一种图形化编程语言的优越性, 用户可以方便的在程序框图窗口中增加和减少端口, 调整端口的位置,控制端口与节点之间的数据流,从而快速地进行控制的修改。 上述前面板对应的虚拟示波器的程序框图如图2 所示。
图2 虚拟双踪示波器程序框图Fig. 2 Program diagram of the virtual oscilloscope
为了方便以后的使用, 这里将已完成的虚拟示波器模块化,也就是创建虚拟示波器对应图标。 在LABVIEW 中,一个虚拟仪器的图标就是某一虚拟仪器的参数列表, 用户可以通过该图标设置其参数, 同时其它的虚拟仪器也就能将数据传输给子仪器。若一个虚拟仪器建立了自己对应的图标,并且可以和其它子仪器连接,这个虚拟仪器即成为高一级的程序,也就可以被其它程序或子程序进行调用, 从而实现了LABVIEW 的模块化功能。 此次设计的虚拟示波器除了可以单独实现各项测量功能外, 还可以作为一个功能模块连入其他设计中,极大地方便了以后的使用。
最后对上述虚拟示波器进行运行测试。 无论使用哪种编程语言, 开发设计后的运行和调试程序都是至关重要的一个步骤。在LABVIEW 中,程序的运行可以通过运行和连续运行两种方法进行,其运行结果可以清晰地显示出来。如果某个虚拟仪器程序在语法上存在错误, 面板工具条上的运行按钮将会变成一个折断的箭头,这就是指出程序执行到此处出错,无法继续。 点击该按钮, LABVIEW 即弹出错误清单窗口,通过点击列表中的错误,选用其中的Find 功能,出错的对象或端口就会高亮显示。用户对其修改后才会取消相应的高亮显示,程序继续向下进行直至错误列表被清空。通过以上设计过程,本文最终实现了虚拟示波器预定的各项功能正常进行。
3 虚拟示波器调试与结果分析
对于程序的调试,在LABVIEW 中可以利用单步运行、设置断点、设置探针等方案来显示数据流动方向,以此实现对程序的调试。 通过以上方法设计出的虚拟示波器其前面板可以实现前述各旋钮功能, 进而最终实现利用虚拟示波器替代传统示波器对各种信号进行测量, 对信号波形进行显示以及进行双踪测量。 以下对虚拟示波器的双踪测量及显示功能进行分析。
以PC 机为平台将设计好的虚拟信号发生器与虚拟元器件相连接。用虚拟信号发生器来产生不同频率和幅值的波形,通过虚拟元器件来显示、测量、处理和分析这些波形,来检测虚拟元器件的性能。 以下以虚拟示波器A、B 两通道同时显示波形为例进行测试。
为了进行双通道波形显示, 首先在虚拟示波器的前面板上应将“通道选择”设置为“A+B”,即双踪显示。 其中可以将“CHA”通道和“CHB”通道分别设置为正弦波、三角波、方波、锯齿波,并可通过相应旋钮对各信号进行参数设置,如调节幅值、频率等旋钮来改变波形的幅值和频率等,虚拟屏幕上可显示相应叠加后的波形,图3 为显示波形中的两种效果图。
图3 双通道波形显示Fig. 3 Double channel waveform display
从图示与实际传统示波器显示结果对照后可以发现,波形清晰并吻合, 可以在参数变化后及时做出反应显示正确波形,失真较小,可以代替传统示波器进行实验,具有推广价值。
4 结束语
本文以虚拟示波器为例,对基于虚拟仪器的实验仪器应用进行了研究, 阐述了LABVIEW 图形化开发工具用于产品设计周期的各个环节,从而改善了产品质量、缩短了产品投放市场的时间,并提高了产品开发和生产效率。 利用LABVIEW软件所提供的高性能模块化硬件,结合各种测试、测量和自动化的应用, 最终实现了用虚拟示波器替代实际示波器进行数据的测试。鉴于各种主客观因素,此次只利用LABVIEW 开发了虚拟示波器, 对其他虚拟仪器还未有涉及, 在今后的研究中,可以逐步对先电工电子类的其他仪器进行虚拟化设计,实现此类课程实验的虚拟化。 当然,虚拟实验还不仅局限于此,在此基础上可以向工科其他课程扩展, 并且可以将虚拟仪器与网络化进程相结合, 使得虚拟仪器的应用彻底摆脱时空限制,真正实现基于网络的虚拟实验。
[1] NI.Integrating the internet into your measurement system data socket technical overview [J].National Instruments,2005:3-5.
[2] National Instruments [J]. G Programming Reference Manual,1998:49-60
[3] 刘君华. 基于LABVIEW的虚拟仪器设计[M],北京:电子工业出版杜,2003.
[4] 张爱平,等.LABVIEW入门与虚拟仪器[M]. 北京:电子工业出版社,2004.
[5] 张易知,等. 虚拟仪器的设计与实现[M]. 西安:西安电子科技大学出版社,2002.
[6] National Instruments [J]. The Measurement and Automation Catalog,2002:49-137.
[7] 段玉生,王艳丹,何丽静.电工电子技术与EDA基础[M].北京:清华大学出版社,2004.