您的位置:控制工程论坛网论坛 » 传感器 » 远程虚拟仪器管理实战

xiao_xiao1

xiao_xiao1   |   当前状态:离线

总积分:9568  2024年可用积分:0

注册时间: 2008-03-21

最后登录时间: 2012-03-20

空间 发短消息加为好友

远程虚拟仪器管理实战

xiao_xiao1  发表于 2009/4/27 12:42:18      602 查看 0 回复  [上一主题]  [下一主题]

手机阅读

虚拟仪器技术的出现彻底打破了传统仪器由厂家定义、用户无法改变的模式,用户借助通用的仪器硬件平台,调用不同的测试软件,就可以构成不同功能的仪器。本文对远程虚拟仪器中的网络通信、工作原理、实现方案等作了系统的探讨和研究。  
医生通过互联网操控异地的机器人,对患者成功实施手术。 
        远程虚拟仪器系统是近年来诞生并发展迅速的一种新型网络测控技术,它不同于一般的信息网络技术,其主要应用于远方有传感器或其他数据接收设备得到的数据的传输与通信。例如,医疗系统远程会诊、环境监测与数据分析等等。本文对远程虚拟仪器中的网络通信、工作原理、实现方案等作了系统的探讨和研究。 
虚拟仪器与远程虚拟仪器  
       随着微电子技术、计算机技术、软件技术和网络技术的高度发展,在科研、工业和医学领域,随着低成本高性能的计算机资源的有效利用,数字化平台逐渐成为测量仪器的基础。仪器技术和计算机技术的深层次的结合创造了虚拟仪器的概念,将计算机(处理器、存储器、显示器等)和通用仪器硬件(A/D、D/A 变换器、数字输入/输出、定时和信号处理器等)与用于数据分析、过程通讯及用户图形界面的软件有效地结合起来,就组成了虚拟仪器。 
        虚拟仪器技术的出现彻底打破了传统仪器由厂家定义、用户无法改变的模式,用户借助通用的仪器硬件平台,调用不同的测试软件,就可以构成不同功能的仪器。虚拟仪器能提供给用户一个充分发挥自己才能和想象力的空间,用户可以随心所欲地设计和构造自己的仪器系统以满足多种多样的测试需求,而所需的只是一些必要的硬件、软件加上通用计算机。仪器的智能化和虚拟化已经成为未来各级实验室以及研究机构发展的方向,“The Soft is Instruments(软件就是仪器)”正在被广大科技、教学工作者逐步接受。  
       继“软件就是仪器”的概念之后,出现了“网络就是仪器”的新观念。远程虚拟仪器就是虚拟仪器在网络领域的扩展。远程虚拟仪器技术结合了虚拟仪器技术与网络技术,将虚拟仪器的应用范围拓展到整个Internet网上,使信号采集、传输和处理一体化,一方面可以使许多昂贵的硬件资源得以共享,充分利用现有的实验室资源; 另一方面还有利于远程教育实验教学的开展,从而解决限制远程教育中的实验教学进行的难题。因此构建基于Internet上的远程虚拟仪器实验系统已经成为虚拟仪器应用发展的一个重要的环节。远程虚拟仪器结构模式如图1所示。 

图1 远程虚拟仪器的结构模式
远程虚拟仪器的实现 
无论哪种远程虚拟仪器系统,都是将硬件仪器(传感器、调理放大器、A/D卡)搭载到远端服务器上,加上应用软件并和本地的笔记本电脑、台式 PC 机或工作站等各种计算机通过网络相连而构成的,实现了用计算机和网络技术的全数字化的采集测试分析,因此远程虚拟仪器的发展跟计算机和网络技术的发展步伐完全同步,显示出其灵活性和强大的生命力,Internet为实现远程虚拟仪器系统提供了一个很好的平台,利用浏览器/服务器模式,操控者可以在浏览器端控制远程服务器进行测试以及进行远程实验的操作,从而实现对远地实验系统的远程控制和监控。  
        远程虚拟仪器是虚拟仪器在网络领域的拓展,除了具备虚拟仪器的全部优点外,主要优势还在于不受地域、环境的限制。用网络技术组建的远程虚拟仪器系统,可以使信号采集、传输和处理一体化,不但可以共享许多昂贵的硬件资源,而且还便于扩展测试系统、提高测试效率,所以应用极为广泛,是科研、教育、开发、测量、检测、计量、测控等领域不可多得的好工具,更值得一提的是它的出现对远程医疗、远程诊断等新兴领域的发展有重要意义,也使现代远程教育的全面开展成为可能,同时也会使教学实验走上一个新的发展高度。 
        远程虚拟仪器开发和实现方案  
        Internet 网络技术和基于计算机技术的虚拟仪器(VI)系统技术正在推动着远程测控技术的迅速发展。基于 Internet 的远程测控开发主要研究和讨论基于Web的虚拟仪器技术,本文则基于最流行的现场测控开发平台LabVIEW,讨论了四种用于开发远程虚拟仪器的技术实现过程及其工作原理,并对其实现特点进行了分析。  
        1. DataSocket 技术 
        LabVIEW 具有强大的网络通信功能,这种功能使得 LabVIEW 的用户可以很容易地编写出具有强大网络通信能力的 LabVIEW 应用软件,实现远程虚拟仪器。DataSocket 是 LabVIEW 最新提供的一个网络测控系统开发工具,它大大简化甚至免除了网络通信编程,用户使用这种技术可以很容易地在互联网上实现高速实时数据交换。借助它可以在不同的应用程序和数据源之间共享数据并进行实时数据(Live data)的传输。图2描述了 DataSocket 的体系结构。 

       DataSocket 可以访问本地文件以及 HTTP 和 FTP 服务器上的数据,并为低层通信协议提供了统一的 API 函数,编程人员无需为不同的数据格式和通信协议编写具体的通信程序代码。DataSocket 使用一种增强型数据类型来交换仪器类型的数据,这种数据类型包括数据特性(如采样率、操作员、通道数、时间、及采样精度)和实际测试数据。 
       DataSocket 遵循了 TCP/IP 协议,并对底层进行了高度封装,所提供的参数简单友好,用类似与 Web 中的统一资源定位符(Uniform Resource Locator,URL)定位数据源,URL 不同的前缀代表了不同的数据类型。FILE 表示本地文件,HTTP 为超文本传输资源,FTP 为文件传输服务器上的资源,OPC表示访问的资源是 OPC 服务器,DSTP(DataSocket Transfer Protocal,DataSocket 传输协议)则说明数据是来自 DataSocket 服务器的实时数据。 
      2. 基于 ActiveX 技术  
      组件式技术已经成为当今软件技术的潮流之一,组件式技术是一种广泛的体系结构,支持包括设计、开发和部署在内的整个生命周期计算的理念,它将彻底改变目前软件生产和开发的模式。组件是一种能够提供某种服务的自包含的软件模块,它封装了一定的数据(属性)和方法,并提供特定的接口,开发人员利用这一特定的接口来使用组件,并使其与其它组件交互通信,以此来构造应用程序,用户可根据自己的需求灵活购买软件组件。他们只需编写一些“胶水编码”将各个组件“粘”起来,便可构建自己的应用系统,就如同今天我们购买板卡组装计算机一样简单。 
       目前,基于组件式技术的规范主要有 Microsoft 的 COM/ActiveX 和 Sun的 Java/JavaBeans。由于 Microsoft 的 Windows 操作系统已经成为桌面 PC 操作系统的事实上的标准,所以 COM/ActiveX 得到了许多第三方厂商的支持。利用 COM/ActiveX 技术,我们可创建各式各样的桌面和 Internet 应用程序。ActiveX 控件技术是 COM/ActiveX 技术的重要组成部分,是 COM 技术在 Internet 上的扩展。ActiveX 是一种可以在应用程序和网络十计算机上重复使用的程序对象。创建它的主要技术是 Microsoft 的 COM/ActiveX 技术,组件对象模型(COM)是其基础。ActiveX 控件可以以小程户下载装入网页,也可以用在一般的 Windows 应用程序环境中。  
        ActiveX 控件可以由不同的可以识别 Microsoft 的 COM 技术的语言开发,它是一个组件,它可以在同一个或分布式的计算环境中开发或使用。COM 的分布式支持技术称为 DCOM。在实现中,ActiveX 控件是一个动态链接库(DLL)模块,它包括在容器(包括 COM 程序接口的应用程序)当中,这种可重复使用的组件技术可以加快开发速度和质量。 

通常情况下,基于以下三点可以考虑采用 ActiveX 控件实现远程测控功能: 

● 浏览器对组件技术,尤其是ActiveX 的广泛支持; 

● ActiveX 控件在客户端的执行效率要高于 JavaApplet; 

● 易于开发,Delphi 开发的程序可以直接以 ActiveX 控件形式进行网络开发。 

在远程测控系统开发中,我们可以用 Borland Delphi 开发平台对远程测控客户端软件进行重新开发,并以 ActiveX 控件的形式进行封装。当客户端在访问服务器网页时,会自动下载和运行该 ActiveX 控件程序,从而实现了类似Java Applet 程序所实现的功能。 

3. 基于 Java Applet 技术 

(1)Java Applet 技术的特点 

首先,Applet 程序是从服务器端自动下载到客户端执行,并且是嵌入到浏览器中运行。对用户而言,这与一般的上网浏览没有任何区别,Applet 只能在浏览器环境内运行,只需所用的浏览器支持 Java 即可,而当前几乎所有的浏览器均支持 Java 并拥有 Java 虚拟机,无须下载插件。而且,Java 方便的语言操作能力,无论在界面操作还是程序设计上,均给开发人员带来极大的便利。 

其次,Java 语言具有强大而完善的网络开发功能。在 Applet 程序中,很容易就可以实现同远程服务器之间建立连接并控制数据传递。当客户端打开服务器网页时,会自动下载和启动 Applet 程序,这样,客户端只需简单操作 Applet程序即可控制远端系统工作和结果数据传输。 

第三,由于 Java 本身是一种优秀的跨平台语言,这使得无论在 Windows操作系统还是 Unix 系统抑或是 Linux 系统下,针对客户端开发的 Applet 程序都无须修改而做到完全移植。这一特点很大程度地扩展了远程测控系统的应用范围。 

(2)Java Applet的工作原理及通信过程 

应用本方案实现的远程测控系统的基本结构示意图如图3所示。客户端由两个部分组成,一个是网络浏览器,另一部分则是嵌入到浏览器页面中运行的 Java Applet 程序,客户端通过 Internet 和支持 Java Applet 的浏览器来访问服务器,自动下载并运行 Applet。服务器端由 Web 服务器、LabVIEW 程序和DataServer 三部分组成。Web 服务器为客户端提供 WWW 服务,使得客户端能够通过浏览器访问服务器。LabVIEW 程序负责服务器端的现场测控。而 Data Server 一方面同客户端 JavaApplet 程序建立网络连接,作为 Applet 程序的数据服务器,按受客户端 Applet 程序的请求并传送数据; 另一方面又负责响应Applet 程序的请求,以客户方式对 LabVIEW 程序进行相应的控制。 




具体过程如下: 

①客户端 Web 浏览器请求服务器端的网页,JavaApplet 自动下载到客户端并启动运行。建立客户端于服务器端 Data Server 的网络连接。 

②Applet 向 Data Server 发送数据请求,实现数据接收和显示。 

③Applet 程序获取鼠标和键盘事件,并发送到服务器端的 Data Server,Data Server 对 LabVIEW 程序进行相应的控制,从而间接实现远程控制。 

4. AppletVIEW 技术 




AppletVIEW 是 Nacimiento Software Corporation 的产品,它能够把由LabVIEW 以及 LabWindow/CVI 生成的虚拟仪器发布到 Web 上。 

(1) AppletVIEW 技术的特点 

客户端程序采用 AppletVIEW 开发实现,AppletVIEW 是一个为 LabVIEW开发 Web 应用程序的软件,可以实现 B/S 模式虚拟仪器。它为服务器端提供了网络开发的 G 语言支持,从而在服务器端,可以在 LabVIEW 平台上结合AppletVIEW 的代理功能更好的解决网络多用户问题。而且,数据的传输是基于 Socket 的一种传输方式,具有较高的数据吞吐量。针对客户端程序开发,AppletVIEW 提供了一个友好的可视化开发环境和—些测控常用的组件,这个环境也加快了客户端程序的设计开发。 

(2) AppletVIEW 的工作原理及通信过程 

AppleWIEW 开发包的一部分是 VITP 服务器,它负责处理本地仪器和远端仪器的经由 Web 的通信。在服务器端的仪器系统里,它作为 LabVIEW 程序运行,提供了一个在 AppletVIEW 子仪器和远端仪器之间的接口界面。此服务器管理经过 AppletVIEW 子仪器的来自以及送入虚拟仪器的数据,并且通过JavaApplet ID 以及一组数据管道在本地仪器和远端仪器间进行通信。在远端可以监控本地仪器的运行状态,具体通信过程如图4所示,过程描述如下: 


1-2: Web 浏览器从 Web 服务器请求 HTML 页面,Web 服务器发送此页面到 Web 浏览器。 

3-4: 在浏览器端,带有< Applet>标示的 HTML 页面说明有 Java 程序被调用,Web 浏览器的 Java 虚拟机运行并从 Web 服务器请求 Applet 类文件。需要的 Java 类文件在 AppletVIEW.jar 中。 

5: 服务器发送 AppletVIEW.jar 到 Web 浏览器。 

6-7: AppletVIEW.jar 加载后,程序开始运行,请求“configureFile”中的参数。 

8: Appletbuilder 生成的 MyApplet.jvi 被送到 Web 浏览器的程序中。 

9: Java 程序与服务器通过数据端口(默认 4749)建立 TCP/IP 连接,通信过程建立。 

链接:四种实现方案比较 

基于DataSocket技术的远程测控方案,优点是DataSocket定义了一个测控数据传输协议,从而利用这种方法可以达到很高的数据传输效率,实时性能相当好。缺点是它只能实现C/S模式而不能实现B/S模式,需要同时开发服务器端程序和客户端程序,客户端控制功能太弱,尚有待加强。 

基于ActiveX实现方案,在实现上采用 Delphi开发,它的优点是开发效率高,而且一旦程序下载成功,比起同样功能的Java 程序具有更高的执行速度和效率,占用的系统资源也相对比较少; 但是,实验证明,它生成的ActiveX控件程序的尺寸比 Java 程序要大许多,客户端需要花费大量的时间来下载这个程序。 

基于Java Applet技术的优点是可以实现B/S模式,只需开发服务器端程序,开发效率高,客户端无须下载插件,程序较小便于下载执行; 缺点是图像质量差,动态显示有跳动感不连续。 

基于AppletVIEW组件技术实现的远程测控方案,可以实现B/S模式,AppletVIEW 是第三方开发的远程测控专用组件,为远程测控系统提供了可视化开发环境,能把LabVIEW仪器面板自动生成Java仪器面板,所以具有很高的开发效率。而且,数据的传输是基于Socket的一种传输方式,具有较高的数据吞吐量,缺点是需要修改本地测控程序,并在本地VI程序中调用AppletVIEW提供的一些网络控件VI,来与浏览器端的Java程序通信,从而实现网络测控。 

远程虚拟仪器是虚拟仪器在网络领域的拓展,它的许多优点使其应用极为广泛,是科研、教育、开发、测量、检测、计量、测控等领域不可多得的好工具。网络通信技术和虚拟仪器技术相结合是本文的讨论重点,文中对远程虚拟仪器的网络结构及构成、开发方案及工作原理都作了较为系统的研究。最后再给出几点经验和建议: 

(1) 如果是实验室或小范围的远程测控,可采用C/S模式,客户端实现与服务器直接相连,没有中间环节,因此响应速度快。如果是远距离、大范围的远程测控工作,可采用B/S模式,具有分布性特点,可以随时随地进行操作,而且升级维护方便。 

(2) DataSocket定义了一个测控数据传输协议,数据传输效率高,实时性能好,但只能实现C/S模式。而基于ActiveX 技术开发效率高,具有更高的执行速度和效率,但生成的ActiveX控件的尺寸较大,客户端需要花费大量的时间来下载这个程序。采用Java Applet技术可以实现B/S模式,开发效率高,实验证明图像质量差,动态显示有跳动感不连续。基于AppletVIEW组件技术可以实现B/S模式,开发效率高,数据的传输是基于Socket的一种传输方式,具有较高的数据吞吐量,试验结果表明,系统稳定可靠,实时性好。 

(3) 服务器端IIS中的Web服务器使用的是8080端口,和LabVIEW中的Web服务器冲突,应修改端口号或关闭IIS中的 Web 服务器,这样才能使AppletVIEW通过8080端口和LabVIEW通信。 

网络技术和虚拟仪器的结合,使 VI 拓展到真正的分布式网络测试应用环境中去,对于丰富测试手段,提高测试效率,共享信息,充分合理地利用现有资源都有着很好的作用,将成为现代仪器仪表发展的方向。
1楼 0 0 回复