网络化分布式虚拟仪器测试研究

   2024-02-18 互联网1030
核心提示:  摘要: 面对日益增长的测试系统的远程、分布式及实时性测试需求,提出了一种C/S 模式和B/S 模式混合网络化分布式虚拟仪器测试

  摘要: 面对日益增长的测试系统的远程、分布式及实时性测试需求,提出了一种C/S 模式和B/S 模式混合网络化分布式虚拟仪器测试结构。对于实时性需求结合ActiveX 技术和DataSocket,开发ActiveX 客户端控件和服务端仪器测试应用服务器。用户可以通过B/S 浏览器向Web 服务器提交命令和参数,远程控制实际的仪器设备,获得实时测试数据和测试结果。

  0 引言

  随着自动测试系统的发展,基于单机的虚拟仪器测试系统已经不能满足大型测试系统的远程、分布式网络测试要求。将计算机的网络技术引入到自动测试测试系统,构建网络化分布式虚拟仪器测试系统,可以将不同地理位置不同功能的仪器连接在一起,实现昂贵设备硬件资源和软件资源的共享,减少重复投资,特别是建立远程网络分布式虚拟仪器实验室,将其开放给科研工作者科研或学生学习,可以实现资源最大程度的共享和重复使用; 并且通过网络分布式连接可以组建更复杂、集成度更高,功能更强大、应用范围更广泛的自动测试。

  1 网络化分布式虚拟仪器测试结构

  网络化分布式虚拟仪器测试存在几种模式: C/S 模式( 客户端/服务器) ,B/S 模式( 浏览器/服务器) 、C/S/B 模式( 客户端/服务器/浏览器) 。C/S 模式是一种传统的模式,该模式由客户端和服务器组成,在客户端有1 个客户端应用程序,该应用程序可以提供非常强大的功能,包括测试流程,友好的图形化测试界面,详细的出错提示和处理,以及实时在线帮助,具有非常方便的人机交互。

  与B/S 相比较,目前比较先进的ASP 虽然通过VBScript 和JavaScript 可以实现一些交互功能,但其交互能力远不如 C / S 模式[1]。而且使用 C/S 模式可以降低网络的通信数据量,尤其适合需要大量数据实时传输传递的应用场合。C/S 模式有着交互性强、网络负荷小、速度快、安全可靠的优点。C/S 模式也存在比较明显的缺点: 开发成本高,客户端维护升级不方便,因为分布在不同地理位置的每一个客户端的应用都需要进行一一维护或升级。B/S 模式以WEB 技术为基础,用户在WEB 下可以很方便的发布数据。B/S 模式的网络远程测试的结构如图1所示。

  在B/S 模式中客户端只需要安装浏览器,通过网址在任何地方都可以访问远程测控服务器,进行远程数据采集和控制。B / S 模式的主要工作是服务器端程序的开发,客户端使用通用浏览器,不存在客户端的开发与维护。程序的维护和升级非常方便,因为维护和升级全部在服务器端进行[2]。使用 B/S 模式的缺点是: 浏览器加载网页的速度较慢,传输数据的时候相应较慢; 用户不能长时间与服务器建立连接,所以不能进行大量数据的传送。

  以上讨论的两种模式各有优缺点,对于大型的远程分布式测控系统,单独使用其中的一种模式很慢满足测控任务的需求,可以使用这两种模式的混合模式-客户端/服务器/浏览器模式,它是B/S 模式和C/S 模式的结合与扩展。其结构图如图2 所示。

  在该混合模式中,对于数据量不大,实时性要求不高的监视数据,可以使用B/S 模式进行检测。对于数据量大,实时性要求高的监视数据,可以通过在网页中通过嵌入ActiveX 控件的方式,由ActiveX 控件通过某种连接方式直接连接测控应用服务器( 如TCP 方式) ,建立数据连接通道,进行快速大量数据传输。开发的ActiveX 控件放置在服务器端,当客户端浏览器需要该控件,可以从服务器下载该控件到客户端的浏览器Browse 中。B / S 和C / S 的混合模式既可以克服基于B / S 模式不能建立长时间链接和传输速率较慢的缺点,同时因为C/S 客户端以 ActiveX 控件方式放置在服务器端供浏览器Browse 进行下载,容易升级和维护[3]。

  2 关键技术

  2. 1 测试数据的实时传输

  对于网络化分布式虚拟仪器测试要解决的关键问题之一是测试数据的实时传输。B/S 模式下的网络虚拟仪器测试因客户端不能与服务器建立长时间的连接,所以不能进行大量数据的传输,也不能实现实时数据传输。在许多基于网络虚拟仪器测试系统中,对于大量数据的连续传输,采用缓存或数据库加定时的方式: 即通过缓存或数据库将采集数据存起来,然后再使用定时技术用定时的方式将数据传输到客户端。用这种方式可以解决长时间、大量数据的传输; 然而数据传输的延迟比较大,为了提高数据传输的效率,降低数据传输的延迟,很多系统中引入 Ajax 技术。使用Ajax 优点是能在不更新整个页面的前提下更新数据。这使得Web 应用程序能更为迅捷地回应用户动作,可以避免在网络上发送那些没有改变过的信息。一种更方便、更可靠、传输延迟更低的方法是在B/S 下结合C/S模式。可以在Web 网页中嵌入ActiveX 控件作为TCP 或 UDP等通信的客户端,并在服务器端运行TCP 或UDP 等通信的客户端。

  2. 2 ActiveX 控件技术及套接字链接

  随着计算机技术的飞速发展,人们对软件产品的质量和软件的生产速度都有了更高的要求,而利用组件技术( Compo-nent) ,软件开发人员可以堆积木似的“搭建”软件系统( 如基于组件规范的ActiveX 控件技术) ,从而实现软件的大粒度复用,缩短开发周期,降低维护成本。用户可以将开发的ActiveX 控件嵌入到web 中,通过编写脚本在客户浏览器需要该控件时,将控件下载到客户端浏览器中。在web 中嵌入ActiveX 控件这种方式一方面可以很方便扩充系统功能,另一方面当服务器端修改或更新ActiveX 控件时,各个客户端浏览器可以统一从服务器端重新下载更新后的ActiveX 控件,可以快速升级和维护,降低维护升级的费用。嵌入ActiveX 控件的网络虚拟仪器测试系统的控件下载及工作过程如图3 所示。

  首先客户端浏览器请求网页,服务器响应请求,将网页和嵌入网页中的ActiveX 控件下载到客户端,同时 Web 服务器启动测试应用服务器。然后对于实时性要求不高的数据,测试应用服务器将其存入数据库中,web 服务器可以从数据库中读取数据来更新网页; 对于实时性要求比较高的关键信号的监视,可以使用AcitveX 控件通过 TCP 或UDP 等通信方式进行直接实时读取。

  2. 3 套接字链接及DataSocket

  DataSocket 是一项面向测控领域的网络通信技术,它可以简化计算机在 Internet 上的远程数据交换,可以很方便地实现网络或本机上的应用程序之间现场数据的共享。DataSocket 遵循TCP/IP 协议,并对底层进行了封装,并提供了一个更高层次的编程接口,使用者不必关心底层的实现细节[4]。它能有效地支持本地计算机上不同应用程序对特定数据的同时操作,以及网络中不同计算机之间的多个应用程序之间的数据交互,实现跨机器、跨语言、跨进程的实时数据共享。在 1 个分布式测试系统的设计中,相对使用套接字 Socket 进行基于UDP 或TCP的数据通信而言,使用DataSocket 可以简化通信程序的编写过程、提高编程效率。DataSocket 由DataSocket Server Manager、DataSocket API 和DataSocket Server 3 部分组成。DataSocket 提供1 个可与多种语言、多种数据类型进行通信的接口DataSocket API. 通过DataSocket API,测控服务器可以将测控数据发布到网络中,客户端可以从网络中读取测控数据,整个过程是透明度,用户不需要编写TCP/IP 通信程序。

  DataSocket Server 是一个运行在服务器端的服务程序,它通过为用户处理 TCP/IP 编程来简化网络通信。DataSocketServer 可以和测试应用程序共处同一台计算机上,也可以分布在不同的计算机上。应用DataSocket Server 进行分布式数据通信的过程为: 测试数据发布者使用DataSocket API 将数据写入到DataSocket Server 中,测试数据使用者使用Server API 将从DataSocket Server 中读出。

  3 网络化分布式虚拟仪器测试设计

  根据实验室现有测试仪器设备资源,主要开发了基于网络的虚拟信号发生器、虚拟数字存储示波器,并利用实验室课题组自主研制的 VXI 总线8 通道并行A/D 模块开发了虚拟时序分析仪。用户可以通过客户端浏览器登录测试网站,根据测试需要下载ActiveX 客户端控件,通过Datasocket 向仪器应用服务器提交请求命令和配置参数,从而远程控制仪器设备,实时观察测试数据和分析结果,并运用数据库管理技术实现数据存储和数据回放功能,方便用户查询管理。系统的硬件组成框图如图4 所示。

  测试应用服务器是基于网络的虚拟仪器测试平台的基本组成部分,用于仪器控制、参数测试和数据采集,并具备网络通信功能。测试应用服务器主要作用是控制和管理实验仪器、接收请求命令、采集和传输实验数据。仪器应用服务器程序接收到客户端发来的命令请求后,首先分析是何种仪器相关命令请求,然后根据请求中包含的仪器种类、控制指令和测试参数等信息,调用VISA 函数或相应的仪器驱动程序进行控制和采集,最后将采集数据通过Datasocket Server 传回到客户端。工作流程如图5 所示。

  8 通道网络时序分析仪器的设计中数据的实时通信要求较高,专门开发了 ActiveX 客户端控件。该ActiveX 客户端控件在客户端与DataSocket Server 建立连接后,通过DSTP 协议命令通道向DataSocket Server 写入测试参数及测试命令; 当DataSocketServer 命令通道有命令到达时会触发仪器应用服务器中的DataSocket 命令接受者的命令更新事件,仪器应用服务器在此事件函数中解析测试请求命令,配置测试参数后,进行相应的操作和数据采集,并将采集到的波形数据写入到DataSocket Server 数据通道中; 当DataSocket Server 数据通道有数据到达时会触发ActiveX 客户端控件的数据更新事件,ActiveX 客户端控件在此事件函数中从DataSocket Server 中读取数据进行显示等操作。设计的网络虚拟仪器测试网站功能如图6 所示。8 通道网络时序分析仪器测试结果如图7 所示。

  4 结束语

  使用C/S 模式和 B/S 模式混合网络化分布式虚拟仪器测试可以解决 C/S 模式下的客户端维护升级不方便缺点,应用ActiveX 技术将客户端下载并嵌入到网页中,实现实时数据的专门C/S 通信,即可解决客户端升级的问题,又提高数据的实时通信。在现有硬件的基础上,搭建网络测试进行验证,系统运行正常,有较好的实时性。

  参考文献:

  [1] 刘念聪,李宏穆,孙未. 网络化虚拟仪器及其关键技术研究技术.机床与液压,2005( 4) : 109 -101.

  [2] 夏绪超,潘克修,吴浩涵. 基于虚拟仪器的网络化技术研究. 理论与方法,2008,27( 12) : 1 -3.

  [3] 邓居祁,殷科生,刘文彦. 网络化虚拟仪器技术的现状与研究方向. 湘潭师范学院学报: 自然科学版,2008,30( 4) : 47 -49.

  [4] 潘海彬,胡壮,张春果,等. 基于虚拟仪器和 DataSocket 技术的机械振动远程监测系统. 仪表技术与传感器,2008( 7) : 24 -26.

  作者简介: 朱望纯( 1977 - ) ,副教授,硕士,主要从事自动测试总线与系统,虚拟仪器。E-mail: zhwch@ guet. edu. cn


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅