关于虚拟仪器开发工具的比较与选取

分享到:
点击量: 284639 来源: 上海御盈电子科技有限公司

  宋 波 陈一民

  (上海大学计算机工程与科学学院 上海200072)

  摘要:随着虚拟仪器日益广泛的应用,支持虚拟仪器开发的各种工具也迅速发展起来,因此需要非常慎重取舍才能获得*佳效果。为使虚拟仪器***能更快更高效地选择适当的开发工具,本文将当前流行的虚拟仪器开发工具进行分类、分析和比较研究。首先将其总体分为两类:基于通用编程软件和基于图形化语言,然后根据各类开发工具在虚拟仪器开发方面的特点进行论述,同时给出相关实例,*后得出,对于虚拟仪器的开发,常需要根据开发项目的实际,结合各种开发工具各自的优势,进行混合编程,方可达到良好的效果。

  关键词:虚拟仪器开发工具比较选取

  0 引 言

  现代计算机技术和信息技术的迅猛发展,冲击着国民经济的各个领域,也引起了测量仪器和测试技术的巨大变革。自从1986年美国国家仪器公司(National Instruments Corp,NI)提出虚拟仪器的概念以后,虚拟仪器由于其性价比、开放性等优势迅速地占领了市场。特别是随着计算机技术高效、快速的数据处理功能越来越强大,基于微型计算机的虚拟仪器技术以传统仪器无法比拟的强大的数据采集、分析、处理、显示和存储功能得到了广泛应用,显示出其强劲的生命力。虚拟仪器系统的基本构成是:计算机+操作系统+虚拟仪器软件+仪器硬件。虚拟仪器可使用相同的硬件系统,通过不同的软件就可以实现功能完全不同的各种测量测试仪器。虚拟仪器技术*核心的思想,使本来需要硬件实现的技术软件化(虚拟化)。基于软件在VI系统中的重要作用,NI提出了“软件就是仪器(The software is the instrument)”的口号。因此作为虚拟仪器核心的软件,从本质上反映了虚拟仪器的特征,因而推动虚拟仪器飞速发展的动力也就是*具活力的软件技术。

  1 虚拟仪器开发环境的总体分类

  目前,各种虚拟仪器开发工具和平台种类比较多,但总体上说,虚拟仪器应用程序的开发环境主要有两类:一类是基于通用编程软件进行编写的软件开发环境。常用的有属于传统文本式的开发语言C/C++、可视化编程工具Visual Studio中的Visual BASIC、VC++和Visual Studio.net及相应的软件包、JAVA、MATLAB等,以及Borland公司的Delphi、C++Builder、JBuilder等。用这类平台开发虚拟仪器的也有被称为中间开发平台的。用户需要利用虚拟仪器中间开发平台经过二次开发,将外部硬件通过驱动程序连接到计算机上,根据需要开发相应的数据分析或仪器控制功能。由于C/C++对开发人员的编程能力和对仪器硬件的掌握要求很高,因此使用的人已越来越少。也有用到Sybase公司的PowerBuilder进行开发的,但由于用到的情况不多,不十分典型,本文不予展开。另一类是基于图形化语言的软件开发环境。常用的有NI公司的LabVIEW 和Lab Windows/CVI、Agilent公司的VEE(原先是HP公司产品,Agilent从HP公司独立出来后,成为后者命名的产品)和HPTIG平台软件等;此外,美国Tektronix公司的Ez—Test和Tek—TNS软件,Wave Test公司的Wave Test VIP(可视仪器编程器),以及HEM Data公司的Snap-Marter等平台软件,也是国际上公认的**虚拟仪器开发平台软件。

  2 几种虚拟仪器常用开发环境的特点

  2.1 基于通用编程软件的开发环境

  2.1.1  Visual Basic

  Visual Basic在界面设计、文件操作、多媒体应用、数据访问、Internet应用等方面都提供了强大的工具,集成化开发环境和软件调试环境方便,具有易学、易用、功能强大等优点。然而,对于虚拟仪器开发而言,VB在数据处理和图形显示方面却不如LabWEW。在使用VB开发工业测量与控制系统应用软件时,常常要对待测量信号进行实时采集、显示,以及实时处理等,而在这方面VB并不擅长。因此,对此类应用程序的开发,*为理想的解决方案是,将VB的图形用户界面开发及其他方面的优势和LabVIEW在数据采集、显示与处理方面的优势结合起来,互相取长补短,从而开发出功能更加强大的测控软件系统。除此之外,也有用VB和MATLAB混合编程开发虚拟仪器的。MATLAB与VB的结合主要有两种方式[1]。其一是在VB中引入MATRIXVB,使得VB可以调用MATLAB函数。其二是将在MATLAB中编写的文件编译成VB可以调用的DLL文件。通过混合编程,利用VB和MATRIXVB,快速、简洁地生成虚拟仪器,而通过调用MATLAB的打印、文字、图形处理等函数可以获得更多的操作功能[1]。

  2.1.2  VC

  VC是一种通用且功能强大的编辑语言,有着无可比拟的优势,现已成为主流开发平台。作为一种流行的可视化面向对象编程软件,用其进行虚拟仪器的软件编程,对于诸多熟悉vc的程序员来说,是一个方便快捷的实现途径。但就虚拟仪器开发而言,由于其自带的界面控件不是十分丰富,在许多测控软件要求用户界面具有和真实仪器相似外观的情况下,用vc实现常需要成千上万条代码,也常会产生效率太低的情况。好在有着极为丰富的界面控件的LabVIEW 中的很多控件可供其他程序共享,而在vc中也可以添加外部的控件。因而可实现在vc环境下使用LabVIEW 控件进行编程[6]。此外,用vc和LabWindows混合编程也不失为一个很好的解决途径。这将在后面的Lab Windows部分作详细阐述。因而,VC在虚拟仪器开发方面,常常和其他开发工具进行混合编程可以大大提高编程效率,减轻工作量,缩短程序开发周期,提高经济效益。

  2.1.3  Visual Studio.NET

  Visual Studio.NET和.NET开发框架紧密结合,是构建互联网应用的**工具。但目前很少有单独利用Visual Studio.NET来开发虚拟仪器的。通常需要借助第三方的软件包,才能同时将Visual Studio.NET的优势充分发挥出来。目前基于该平台的软件包主要有安捷伦(Angilent)T&M 软件包和NI公司的Measurement Studio for Visual Studio.NET等。

  2.1.4  C++ Builder

  通常开发系统底层的东西,需要极好的兼容性和稳定性,选Visual C++。而为企业开发数据库、信息管理系统等高层应用,而且有比较紧的期限限制,选C++ Builder比较好。对于虚拟仪器开发而言,C++ Builder的情况与VC基本相似,除了可以单独进行开发之外,很多时候也可采用混合编程的方法进行开发。当将其与LabWindows/CVI的仪器控制、数据采集结合起来时,可实现良好的仪器控制和外围开发能力。在混和编程过程中,C++ Builder调用LabWindows/CVI的动态链接库,有显式链接和隐式链接两种。其中隐式链接通过动态链接库的import library file(.1ib文件)实现,.1ib文件在LabWindows/CVI生成�%A