虚拟仪器的网络化技术综述

周继勇 刘斌
(电子科技大学)

摘要:本文对虚拟仪器和网络化仪器做了简介,提出了网络化虚拟仪器的思想,并对虚拟仪器网络化的方法做了阐述。文中指出,由于技术的不断发展,在组建虚拟仪器网络测试系统时,应根据实际情况选用适当的技术和方法。
关键词:虚拟仪器,网络化仪器,网络化虚拟仪器,网络测试系统
一、 引言
  
(1)虚拟仪器(virtual instrument)
所谓虚拟仪器是基于计算机的软硬件测试平台,利用现有的计算机,加上特殊设计的仪器硬件和专用软件,形成既有普通仪器的基本功能,又有一般仪器所没有的特殊功能的高档、低价的新型仪器。虚拟仪器由计算机、应用软件和仪器硬件三部分构成,通过软件将计算机硬件与仪器硬件有机融合为一体,把计算机强大的数据处理能力和仪器硬件测量、控制能力结合在一起,通过软件实现对数据的显示、存储以及分析处理。软件是虚拟仪器的核心。
随着计算机技术、通信技术与仪器技术的深入发展和结合,使得虚拟仪器得到了进一步发展,虚拟仪器将计算机资源与仪器硬件、数字信号处理技术结合,把厂家定义仪器功能的方式转变为由用户自己定义仪器功能。在虚拟仪器中,计算机成为仪器的一部分,使得计算机可以得到充分发挥。虚拟仪器的出现是仪器发展史上的一场革命,标志着仪器发展的最新方向和潮流,是信息技术的一个重要领域,对科学技术的发展和工业生产将产生不可估量的影响。
(2) 网络化仪器(networked instrument)
网络化仪器是指服务于人们从任何地点、在任何时间都能够获取到测量信息或数据的所有硬、软件条件的有机集合。它已超出了传统的单个式独立仪器的范畴,且也不是传统的单个式独立仪器的简单组合,而一定少不了电子信息传输媒介的介入。以PC机和工作站为基础,通过组建网络来形成实用的测控系统,提高生产效率和共享信息资源,已成为现代仪器仪表发展的方向。从某种意义上说,计算机和现代仪器仪表已相互包容,计算机网络也就是通用的仪器网络。“网络就是仪器”的概念,确切地概括了仪器的网络化发展趋势。网络化传感器、网络化逻辑分析仪、网络化电能表是现有网络化仪器的几个典型例子。
(3)网络化虚拟仪器的应用前景
根据虚拟仪器的特性,我们能够方便地将虚拟仪器组成计算机网络。计算机网络技术、通信技术、总线技术与数据库技术的发展,乃至Internet网的发展拓展了虚拟仪器测试系统的应用范围。利用网络技术将分散在不同地理位置不同功能的测试设备联系在一起,使昂贵的硬件设备、软件在网络内得以共享,减少了设备重复投资。一台计算机采集的数据可以立即传输到另一台处理分析机上进行处理分析,分析后的结果可被执行机构、设计师查询使用,使数据采集、传输、处理分析成为一体,容易实现实时采集、实时监测。重要的数据实行多机备份,提高了系统的可靠性。对于有些危险的、环境恶劣的不适合人员操作的数据采集工作可实行远程采集,将采集的数据放在服务器中供用户使用。虚拟仪器与计算机网络结合实现仪器的远程教学,学生可以通过网络学习仪器、操作仪器。虚拟仪器的网络化具有广泛的应用前景。有专家预计,在不久的将来,地球将披上一层由大量各种各样电子测量仪器设备组成的“通讯外壳”,它们将负责监控城市、公路甚至整个环境,并会随时将测得的数据信息直接输入网络。
二、虚拟仪器网络化的实现
  虚拟仪器网络测试系统的设计需从虚拟仪器和网络技术两方面考虑。
(1)虚拟仪器部分
  分析测试系统的要求和系统的功能,根据系统功能的要求,在软件和硬件之间进行优化选择,从而确定仪器所必需的硬件模块,以便用最少的模块实现仪器的最佳功能。根据应用情况与实际的条件选择基于计算机的虚拟仪器的仪器模块(VXI总线、PCI总线、PXI总线、GPIB仪器),包括传感器、信号调理电路、DAQ数据采集、信号源等模块。
  硬件确定以后,主要确定软件功能模块,哪些仪器功能由软件实现,将软件功能划分为相对独立的模块。开发过程中还应遵循虚拟仪器软件开发标准:虚拟仪器的软件构架(Virtual Instrumentation Software Architecture),即VISA标准,使得不管虚拟仪器使用的硬件平台或者操作系统是什么,最终所编写的用户应用程序都是可移值的,软件模块具通用性。选择哪种软件工具进行软件开发,在下文叙述。
(2)网络结构设计
  根据测试系统各部分所处的地理位置和覆盖的范围不同可构建局域网、城域网、广域网。一个大的复杂的测试系统由各个子系统组成,每个子系统一般在一个单位的小范围内,因此可建立局域网,然后将每个局域网互联,形成企业测量系统。由于Internet网的发展,一些公用的数据还可以通过Internet网将测量数据发布到网上供网上用户使用,可建立测量发布系统。对于有些危险的、环境恶劣的不适合人员操作的数据采集工作可实行远程采集。
  由于网络测试中每个测试点担任不同的测试任务,为了减少不必要的重复工作,通过网络实现资源共享,同时要减轻服务器与各节点的数据传输,提高网络系统性能,因此服务器和各个节点以及各节点之间协同工作显得尤为重要。基于Client/Server模式的分布式计算、分布式处理系统是解决这个问题的最好选择。基于C/S模式,将系统功能分解到各个节点,各个节点有机配合,用户在自己的终端上就可以观察到从服务器中获取的数据和处理结果。客户机程序和服务器程序可以运行在一台计算机中,也可运行在两台或多台计算机中,Client程序与Server程序相互协同处理,一个测试系统由一个或承担不同任务的多个客户机与一个或多个服务器组成。客户机是用户与系统的交互接口,提供一个用户界面,完成用户命令与数据的输入,显示服务器送回的结果。服务器接受客户机提出的申请,完成所要求的操作并将结果传送给用户。在一个测试系统中,根据任务不同,每个服务器和客户机承担的任务也不同,例如可划分为采集、数据处理分析、输出、监控。一台计算机采集外部数据,将来集的数据存储并传输给另一台计算机,它就是服务器,另外它又需要得到远地计算机的数据,这时它又成为客户机。C/S模式是一种开放式系统的协同处理工作模式。
  设计C/S模式时应首先分析系统所要达到的指标和功能要求,在此基础上,把系统划分为各个相对独立的模块,分配到各个计算机上,每个计算机执行不同的功能,能在客户机上完成的独立任务就不要放在服务器上,以减低服务器的工作量。第二,要保证数据在服务器和客户机、客户机间可靠的传输。设计时需考虑网络的带宽要满足传输要求,并减少网络数据传输量。第三,是选择服务器类型。C/S模式中一种最基本的服务类型就是数据库服务器,另外还有事务处理服务器、应用服务器、对象服务器类型。根据实际情况选择合适的服务器类型对提高网络测试系统的效率很重要。
  另外,网络系统的安全性和可靠性在设计时必须要考虑的一个重要问题,这也是网络系统的热门话题,在此不再叙述。
(3)软件开发方法
  目前的虚拟仪器软件开发工具有如下两类:文本式编程语言如Visual c++、Visual basic、LabWindows/CVI等;图形化编程语言如LabVIEW、HPVEE等。最流行的是LabVIEW和LabWindows/CVI,都是美国NI公司推出的面向计算机测控领域虚拟仪器的软件开发平台。
LabVIEW提供了ODBC、SQL、DataSocket开发工具,采用这些工具编程将提高编程效率。DataSocket是NI公司推出的一种面向测量和自动化工程的网上实时数据交换的编程技术。使用DataSocket类,很容易地通过各种连接传送测量数据,如OPC、HTTP、FTP等而不必学习复杂的TCP/IP数据传输协议,完全能够控制分散的测试节点。利用客户/服务器架构,使网络上的数据传输达到最优化,并使用户交互式地在网上传送现场数据成为实现。为网络化测试工程应用软件的开发提供了一条捷径。
DataSocket遵循了TCP/IP协议,并对底层进行了高度封装,所提供的参数简单友好,只需要通用资源定位符URL(Unifom Resource Locator),就可用来在Internet进行及时分送所需传输的数据。用户可以象使用LabVIEW中的其他数据类型一样使用DataSocket读写字符串、整形数、布尔量及数组数据。DataSocket提供了三种数据目标:file、DataSocket Server、OPC Server,因而可以支持多进程并发。
DataSocket控件包含以下三个工具:
DataSocket Active Control——连接数据源和数据宿,并使其共享数据的元件。因为它是一种Active控件,可以用它的VB、VC++、Borland和Delphi的Active环境中开发数据应用程序。
DataSocket Server——在两个应用程序间用DSTP(DataSocket Transfer Protocol)协议进行数据通信交换是可行的。在服务器端运行了DataSocket Server后,当在客户端也运行DataSocket Server时,就可以使诸如Internet这样的网络连接是可访问的。
DataSocket Server Manager——用以对DataSocket Server进行配置。通过这种配置,可以机器creat items、read items、write items,并且可以选择是否支持多用户读写。
DS也可以用于一台计算机内或局域网中多个应用程序之间的数据交换。DS技术可在C 语言、VB和LabVIEW等多种开发环境中使用。在远程数据交换中可考虑采用DataSocket控件。
  LabWindows/CVI以ANSI C为核心,将功能强大、使用灵活的C语言平台与用于数据采集、分析和表达的测控专业工具有机地结合起来。它的集成化开发平台、交互式编程方法、丰富的功能面板和库函数大大增强了C语言的功能,为熟悉C语言的开发人员建立检测系统、自动测量环境、数据采集系统、过程监控系统等提供了一个理想的软件开发环境。LabWindows/CVI的编程技术主要采用事件驱动方式和回调函数方式,编程方法简单易学。它提供了大量与外部代码或软件连接的机制,如DLLs(动态连接库)、DDE(共享库)、ActiveX等,并且也具有强大的网络功能,支持常用网络协议,方便网络化仪器的开发。
根据工程经验,LabVIEW与LabWindows/CVI相比,更简便易学,书写代码少,不需要开发者具备太多的编程知识,与NI公司生产的I/O卡兼容程度高,但与非NI公司生产的I/O卡兼容程度要差一些。如果你的系统采用了较多非NI公司的I/O卡,可考虑选用LabWindows/CVI,以避免一些不必要的麻烦。
若虚拟仪器软件采用的是VC编写的,用户又精通VC时,当然可用VC++开发数据库,VC提供了多种访问数据库的方法:ODBC、MFC ODBC、DAO、OLE DB、ADO等。这些技术各有特点。
  由于测试系统各个节点的任务不同,所连接的数据库管理系统不一定相同,因此测试系统一般希望不依赖数据库管理系统。所以数据库的开发常采用ODBC方式,ODBC是一个数据库访问的标准接口,可以通过这个接口访问不同类的数据库,基本上可用于所有的关系数据库。不管测试数据库是哪一种关系数据库,只要有相应类型数据库的ODBC驱动程序,就可访问数据库。ODBC可以访问所有的关系数据库,不能访问对象数据库和其他非关系数据库。
MFC ODBC是VC提供的面向对象数据库类,MFC ODBC类封装了ODBC API,提供了面向对象的数据库类,使用这些类编写程序大大简化了应用程序的编写。
  OLE DB是一种基于组件对象模型的数据库接口(Component Object Modul, COM),对所有的文件提供了一个统一的调用接口,既可以访问关系数据库,也可以访问非关系数据(如电子表格、电子邮件、各种文档、文件等),由于采用COM模型,系统稳定,接口灵活,具有可利用性和封装性,访问数据库速度,快,因为组件化使OLE DB程序实现了功能分配,作为客户机的数据应用程序只需要完成自己的数据管理功能,作为服务器数据提供程序也只需要完成自己的一部分功能即可。
  C/S中对象服务器、应用服务器的开发可采用OLE DB技术。
  ADO〈ActiveX Data Object〉是VC提供的又一种面向对象数据库开发技术。OLE DB可以访问数据库应用的能力,但还需要编写大量的代码程序。ADO访问数据库是通过OLE DB提供程序进行的。ADO技术采用高层访问技术访问封装了的OLE DB中COM接口。它提多种语言的访问技术,包括VB、VC、VBA、VJ++,同时ADO还可以用描述的脚本语言访问cript、VCScript等,用ADO开发网页在客户机和服务器应用程序中容易建立Internet虚拟仪器系统。
LabVIEW和LabWindows/CVI 及VirSual C++都提供了丰富的服务器和客户机数据库软件工具,根据自己的情况选择合适的数据库软件开发环境将大大提高系统开发的效率。
三、结束语
  计算机网络技术与虚拟仪器技术的发展与结合,进一步拓宽了虚拟仪器的应用,使虚拟仪器在测试自动化、远程教学方面得以发展和应用。C/S模式的网络结构根据不同的应用将系统的功能划分为相对独立的功能模块,并在系统内进行合理分配,使网络化虚拟仪器系统性能达到最优。计算机软件及软件工具技术的发展与应用使得虚拟仪器与网络系统软件容易实现,进一步推动了虚拟仪器网络系统的发展。
参考文献
[1] Jim Maloney 著,田雨、刘云、郑轶峰译 ,《Visual C++6 DCOM开发指南》,清华大学出版社,2000年9月
[2] 赵伟,张小牛,孟浩文,网络化——测量技术和仪器发展的新趋势,《电测与仪表》,2000,No.7
[3] 刘君华主编,白鹏等编著,《虚拟仪器编程语言LabWindows/CVI教程》,电子工业出版社,2001年8月
作者简介:周继勇,四川省通信学会会员,电子科技大学自动化工程学院硕士研究生。研究方向:测试仪器的智能化和网络化应用。刘斌,电子科技大学通信学院讲师。