>
首页 » 业界动态 » 利用LabVIEW进行任意函数发生器设计

利用LabVIEW进行任意函数发生器设计

作者:曹同强,陈桂梅,严平,周洁敏  时间:2006-09-03 13:39  来源:
[摘要]LabVIEW开发虚拟仪器具有周期短、性价比高、开放灵活等优点,文章介绍在LabVIEW中实现任意函数发生器功能,并利用非NI的数据采集卡构建一套完整的仪器控制系统。

[关键词]LabVIEW;任意函数发生器

传统的台式仪器如任意函数发生器、数字滤波器等加工工艺复杂、价格高昂,仪器面板单调、繁杂,单台使用,以致数据存储、处理不方便,以LabVIEW为代表的软件的出现,轻松的用虚拟仪器技术解决了这些问题,虚拟仪器技术是以计算机为核心,由用户设计仪器面板,通过软件实现仪器功能,实现信号数据的运算、分析和处理,并可利用I/O接口设备完成信号的采集、测量与调试,用户可随意设计需要的仪器,并随时根据需要,通过更新相关软件设置来改进和扩充仪器的性能。在工业生产和实验教学中,经常需要使用任意函数发生器,为此,我们用LabVIEW开发了一套任意函数发生器,该软件的优点是:界面友好、操作简单、功能强大、响应迅速,不仅实现了该仪器所有本地控制,而且还能实现任意波形绘制、编辑、存储、输出功能。

LabVIEW的特点

简单的图形化编程环境
LabVIEW使用了G(图形化)的数据流编程模式,它有别于基于文本语言的线性结构。在LabVIEW中执行程序的顺序是由块之间的数据流决定的,而不是传统文本语言的按命令行次序连续执行的方式。

具有开放性
LabVIEW是开放型的开发环境,它拥有大量的与其它应用程序进行通信的VI库。因此,LabVIEW可从众多的外部设备获取或传送数据,这些设备包括GPIB、VXI、PXI、串行设备、PLCs、和插件式DAQ板等,LabVIEW甚至可以通过Internet取得外部数据源。

系统组成

本系统DA采用USB接口的数据采集卡,以能够更加方便的实现虚拟仪器和被控对象的连接,并具有省电等优点,系统的流程图如图1所示。

图1系统流程

软件部分
任意函数发生器可以输出基本波形、任意公式波形、用户绘制的任意波形。其中,基本波形函数库中存放了11个生产实践中常用的函数波形,用户只要从中选取修改函数、设置波形频率、幅值等参数,就可以产生波形;任意公式波形支持用户输入一个任意公式来表征波形,配有鼠标绘制任意波形的功能,如图2所示,为鼠标绘制任意波形的界面。当用户需要绘制任意波形时,先将鼠标移到画图区的移动光标上,然后按住鼠标左键拖动鼠标,鼠标的移动轨迹即形成任意波形。用户还可输入一系列点的坐标来精确绘制波形。移动光标的坐标通过X、Y轴上黄色小游标指示。绘制完成后,单击[确定]按钮则返回到主界面,单击[重画]按钮则清除原来的波形。

图2绘制任意波形界面

程序界面是人机对话的中介,美观的程序界面是评价一个程序好坏的关键。对界面设计LabVIEW有着独到的优势,可以不用编程或者只要很少的编程即可实现想要达到的效果。可以利用如PhotoShop等图形设计软件做出美观的图片,通过剪贴板导入LabVIEW的程序界面以及控件中,然后通过设置一些图形位置属性等就可以达到理想的效果。在本系统中利用了LabVIEW设计的任意函数发生器的主界面如图3所示。除了能够输出各种波形外,,还能够对各种波形进行操作,如对波形文件、波形数据在文本文件如Word或者Excel进行存储、处理,用户可打开已有波形文件得到波形或可以当前波形,通过移动游标来获得每个点的具体坐标。

图3任意函数发生器主界面

USB数据采集卡DA输出
在利用NI公司生产的板卡进行组建一个测控系统时,只需要进行很少的编程,用向导进行参数设置就可以轻松实现诸如数据采集、数据存储与处理等工作。当然如果利用非NI公司生产的板卡进行系统的组建也是很容易的。因为在LabVIEW编程环境中提供了对外部动态连接库的调用的工具,只要正确地安装了板卡的驱动,可以在系统文件中找到31dll的文件,再利用CallLibraryFunctionNode工具对文件中的函数进行调用,就可以正确地对板卡进行操作。方法是在函数模块Function中选择Advanced子模块,将CallLibraryFunctionNode拖到Diagram中,然后双击进行函数的配置。在本系统中,正确安装了USB数据采集卡与其驱动之后,在系统目录中会找到USB20031dll运动函数库。LabVIEW中提供了对系统库函数调用的VI,在利用此VI调用系统中的库函数的时候需要注意的是所设置的参数和函数返回值的类型以及参数的个数一定与原函数严格一致,否则无法运行。本系统中调用USB2003-WriteDeviceDA函数的设置界面在进行参数设置以后在框图程序中显示的图标如图4所示,其他函数的设置也类似。

图4调用动态连接库

值得注意的是,基于文本的编程语言是按照程序的语句出现的顺序执行,而在数据流程序中,只要一个节点所有需要输入的数据全部到达就开始执行,在使用数据采集卡时,必须先执行创建设备函数,再循环执行输出函数,最后执行释放设备对象函数,于是使用顺序结构来控制节点执行次序,顺序结构SequenceCase在Diagram中的Structer下可以找到。

结束语

LabVIEW是开放型模块化程序设计语言,使用它可快速建立自己的仪器仪表系统,而又不用担心程序的质量和运行速度。由于图形化编程比用文本编程更加直观,很容易实现从文本编程到图形化编程的过度,所以LabVIEW既适合编程经验丰富的用户使用,也适合编程经验不足的工程技术人员使用,随着计算机技术的飞速发展,对测试、测量的方式也产生了深远的影响。快速灵活地组建满足现场测量与控制的系统,给我们提出了更高的挑战,LabVIEW以其方便的图形化编程给我们提供了近乎完美的解决方案,所以被誉为工程师和科学家的语言。

相关推荐

LabVIEW天下会广召天下英雄

NI  LabVIEW  2012-04-16

NI携手FIRST共同推出第二届FTC科技挑战赛

NI  FTC  LabVIEW  2012-03-14

NI与清华大学精密仪器与机械学系共建教学创新基地

NI  LabVIEW  2011-11-23

开发一款用于锥形球磨机的预防性维护监视系统

LabVIEW  传感器  2011-09-21

使用LabVIEW与PXI进行蓝光播放机视频和音频测试

蓝光播放机  LabVIEW  2011-09-13

NIWeek 2011展示NI如何加快工程效率

NI  LabVIEW  2011-09-09
在线研讨会
焦点