利用DataSocket技术实现虚拟仪器在网络平台上的应用

描述

  作者:李水芳,朱荣新,姚启仓

一个大的、复杂的测试系统其数据的采集输人、输出和分析处理往往分布在不同的地理位置上,传统的集成测试方法越来越不能满足复杂测试任务的需求。因此,网络化仪器的出现成为必然。随着计算机网络技术、总线技术和数据库技术的不断发展,互联网使数据共享进入了一个新的阶段,加速了虚拟仪器在网络及远程计算技术方面的发展。虚拟仪器技术借助互联网的强大功能,将来自测量或控制设备中的数据直接发布到Web网页上,把分散在不同位置的不同设备联系起来组成一个测试系统,使资源得以共享。

1 网络化虚拟仪器

虚拟仪器技术把计算机技术和仪器技术完美的结合起来,而网络化虚拟仪器则是把虚拟仪器技术和面向Internet的Web技术结合起来所产生的一种新技术。形象一点说,虚拟仪器把传统仪器的前面板移植到了计算机上,利用计算机上的资源进行测试,而网络化虚拟仪器则把前面板移植到了Internet上,通过Web浏览器远程控制现场的测试仪器和对象,测试结果和测量数据可以通过Internet实时地发布和共享,打破了在同一地点进行采集、分析和显示的传统模式,增强了分工合作能力,大大提高了工作效率。网络化虚拟仪器的结构图如图1所示。

数据库

2 DataSocket技术

要实现虚拟仪器在网络平台上的应用,则必须实现在不同应用之间的数据共享。虽然TCP/IP,DDE等技术支持不同应用程序间的数据共享,但不能用来传输动态数据,而NI公司提供的DataSocket是专门用来传输和发布动态数据的,是一种基于TCP/IP工业标准的网上实时高速数据交换编程新技术,对底层进行了高度封装,在不同的应用之间传输数据时,不必为不同的数据格式和通信协议编写具体的程序代码,简化了网上测控数据的编程。图2是DataSocket的体系结构图。

数据库

DataSocket由DataSocket API和DataSocket Server两部分组成。DataSocket API是一个和协议、编程语言、操作系统无关的应用程序接口,能够把测量数据转化为适合在网络上传输的数据流,他包括4个基本动作:open,read,write,close,可以从以下5个地方获取数据:

(1)Data items on HTTP servers

(2)Data items on FTP servers

(3)Local files

(4)Data items on OLE for Process Control

(5)Data items on DSTP servers

DataSocket Server是一个独立部分,可以把现场数据高速传给远端客户。用DataSocket Server发布数据需要3个部分:发布者(publisher)、服务器(DataSocket Server)、接收者(subscriber),三者关系如图3所示。发布者通过DataSocket API把数据写入DataSocket Server,接收者通过DataSocket API从DataSocket Server读出数据。发布者和接收者之间具有时效性,接收者只能读到信息运行后发布者发来的数据,此数据可以被多次读到。DataSocket Server Manager定义了最大连接数,最大数据对象个数,规定了数据访问的权限,即哪些计算机可以作为发布者,哪些计算机可以作为接收者。这三部分可以存在于一台装置中,但多数是分布在不同的装置中,这样有利于改善系统性能,提高安全度。

数据库

DataSocket通过 URL(Uniform Resource Locator)来定位数据源和目标。URI。的不同前缀表示了不同的数据类型:file为本地文件,http为超文本传输协议,dstp说明来自DataSocket服务器的实时数据,ftp为文件传输协议,opc表示访问的资源是OPC。以下是几个符合规定的URL:

dstp://mytestmachine/wavel

http://WWW.natinst.com/datasocket

3 应用实例

现举例说明利用DataSocket技术实现网络化虚拟仪器检测。某公司提供维修影印机服务,在各地设有维修处,各维修处把影印机信息及型号发回给总部,总部经过分析诊断后,再把诊断结果发给维修处,以便维修人员进行修理。整个工作过程如下:首先把所有诊断程序放人系统的DataSocket Server中,LabWindows/CVI应用程序通过串口和数据采集板与影印机连接起来以获取影印机的有关信息,并通过DataSocket API把该信息发送给DataSocket Server,系统中央程序通过DataSocket API读DataSocket Server,以获取影印机的相关信息以及型号,判断调用哪个诊断程序,然后检测管理程序运行该诊断程序并把诊断结果写入DataSocket Server,LabWindows/CVI应用程序从DataSocket Server中读取该诊断结果,维修技术人员就能用此诊断结果修理影印机。以下是LabWindows/CVI部分源代码实现了对DataSocket的打开、读、关闭操作:

int CVICALLBACK connect(int panel,int control,int event,void*callbackData,int eventData!,int eventData2)

{

switch(event)

{

case EVENT_COMMIT

DS_Openconnection(〞dstp://localhost/testl〞,

DSConst_ReadAutoUpdate,datahandle,DS_callback_NULL);

break;

}

return 0;

}

Void DS_callback_read(DSHandle dshandle,int event,

void *callbackData);

{

DS_GetDataValue(datahandle,CAVT_FLOAT,data,sizeof(double),&sz,&sz);

}

int CVICALLBACK disconnect(int panel,int control,int event,void*callbackdata,int eventDatal,int eventData2);

{

switch(event)

{

case EVENT_COMMIT

DS_CloseConnection(datahandle);

break;

}

return 0;

}

4 结 语

自20世纪90年代以来,仪器的概念已经由传统模式仪器发展成为虚拟仪器,即“软件即仪器”,继而发展成为网络化虚拟仪器,即“网络即仪器”。随着计算机技术、互联网、数据库技术的不断发展,网络化虚拟仪器将会成为今后仪器发展方向的主流,在各行各业得到广泛应用。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分