许爱强,李 佳,陈育良,王小华
(1.海军航空工程学院 科研部,山东 烟台 264001;2.海军航空工程学院研究生管理大队,山东 烟台 264001;3.兵器科学与技术系,山东 烟台 264001)
在信息化时代全面到来的今天,网络已经与人们的日常生活和工作密不可分,人们利用局域网和国际互联网这种廉价高效的手段得到了大量有价值的信息和数据。对于测量自动化领域的研究人员来说,同样如此。人们希望通过Web浏览器远程控制现场的测试仪器和对象,以提高交互性、方便性和实时性。这样就可以在最短的时间内调动故障诊断资源,对机器系统故障作出快速、及时、准确的诊断,从而解决维修时间长、成本高的问题。文中主要对美国NI公司DataSocket技术在远程测试与诊断系统中的应用进行了研究[1]。
DataSocket是美国NI公司提供的一个网络测控系统开发工具,借助它可以在不同的应用程序和数据源之间共享数据。DataSocket可以访问本地文件以及FTTP和FTP服务器上的数据。DataSocket为底层通信协议提供了统一的API函数。编程人员无需为不同的数据格式和通信协议编写具体的程序代码。
DataSocket使用一种增强数据类型来交换仪器类型的数据,这种数据类型包括数据特性(如采样率、操作者姓名、时间及采样精度等)和实际测试数据。
DataSocket用类似于Web的统一资源定位器(URL)定位数据源,URL不同的前缀表示了不同的数据类型,FILE表示本地文件,HTTP为超文本传输资源,FTP为文件传输协议,OPC表示访问的资源是 OPC服务器,DSTP(DataSocket Transfer Protocol)则说明数据来自DataSocket服务器的实时数据[2]。图1描述了DataSocket的体系结构。
图1 DataSocket体系结构图Fig.1 Structure diagram of DataSocket
由图可以看出,对于采用DataSocket技术的远程测试系统,其客户端可以是用户浏览器、LabWindows/CVI和LabVIEW平台软件。DataSocket技术有如下特点[2]:
1)良好的安全性 DataSocket技术提供了两种方法保证数据传输的安全性:DataSocket服务器管理程序允许用户设定是否有权限在DataSocket服务器上读、写以及创建项目的计算机。此外,DataSocket技术使用TCP/IP 3015端口传输数据,此端口已通过IANA(Internet地址分配机构)注册为DSTP协议专用端口,因此用户可以在防火墙外部的计算机上运行DataSocket服务器,同时可保证在防火墙内部的计算机上安全地运行应用程序。
2)传输速度快 DataSocket本身包含很小的头文件,在10M的以太网内,其传输速度可达到320Kb/s。由于DataSocket建立在TCP/IP的顶层,当通过Internet传输数据时,传输速度要受到网络带宽和网络流量等因素的影响,其中网络带宽是最主要的因素,只要能提供一定的带宽,就能满足远程测控所要求的实时性。
3)用于动态数据传输 虽然有多种技术都支持在不同的应用之间共享数据,包括TCP/IP、DDE等,但这些工具中的大部分都不是用来传输动态数据的,而DataSocket技术是专门用来在测量与自动化应用中传输或发布动态数据的。
DataSocket由DataSocket API和DataSocket Server两部分组成。DataSocket API提供了多语言访问、多种数据类型的单一接口[3]。DataSocket Server通过管理TCP/IP通信为用户提供并简化Internet通信。采用DataSocket Server发布数据需要3个部分:发布者、服务器和接收者。发布者和接收者都是客户端,发布者用于发布数据,接收者用于接收数据。一个DataSocket Server最多可以支持1 000个接收者和发布者。在DataSocket Server Manager中可以定义最大连接数、最大数据对象个数,以及哪些计算机可以作为数据发布者,哪些计算机可以作为数据接收者,这也就规定了数据访问的权限。DataSocket服务器和服务器管理器的界面如图2和图3所示。
图2 DataSocket服务器图Fig.2 DataSocket Server
DataSocket API包括 4 个基本 动作:open、read、write 、close,用它们可以从HTTP服务器、FTP服务器、OPC服务器、DST服务器和本地文件获取数据[5]。
DataSocket支持 5 种访问模式(AccessMode ):Read/Write、ReadAutoUpdate/WriteAutoUpdate、ReadWriteAutoUpdate,其中前两个引发单次操作,此时用DS_Update函数可以再次引发底层的读或者写操作。它通过检测数据是否更新,来控制读写操作是否执行,从而实现同步效果。后三种模式是在数据发生变化时自动引发读/写操作。DataSocket以数据特性的形式同时传输多种参数,它可以包括采样率、操作者姓名、时间、数据量等信息。DataSocket通过统一资源定位URL来定位数据源和目标,它支持几种URL前缀方式,以下是几个符合DataSocket规定的URL的实例[4-6]:
图3 DataSocket服务器管理器Fig.3 DataSocket Server Manager
1)“dstp://localhost/data1.txt”;
2)“dstp://202.116.30.13/data2”;
3)“http//www.natinst.com/DataSocket/chirp.dsd”;
4)“ftp//ftp.natinst.com/support/datasocket/tone.wave”。
这些实例中第1部分定义了传输协议,第2部分为主机名或主机的IP地址,第部分为存储传输数据所在区域的名称,该名称由传输双方自行定义。
现在以一个具体的应用实例说明如何使用DataSocket来实现远程测控的方法。为了简单起见,本例中只介绍多种参数的传输和实时接收并显示。数据的写入者是一个远程测试仪器,该仪器采集被测装备的指标参数并传入上位机,在上位机的虚拟仪器面板上进行相关运算和显示,如图4所示。当参数值发生变化时,会自动写入到DataSocket服务器,而网络上的其他测试人员(即与其连接的客户端)可以同步看到这个值的变化,就如身在测试现场一样。远程客户端虚拟仪器面板及显示情况如图5所示。
图4 参数的采集和发送Fig.4 Parameters of the acquisition and delivery
图5 参数的接收和同步显示Fig.5 Receive and display parameters simultaneously
从图4和图5上可以看出,该系统同时传递6组数据(2个波形、3个参数和1个人工输入数据)。其中一个以主值形式,其余都以属性形式,通过DataSocket函数面板的write函数写入DataSocket Server。URL为负责数据采集的计算机IP地址,在运行程序前必须先打开DataSocket Server,否则会报错。实现此传输功能的部分程序代码为:
位于客户端的DataSocket数据读取和数据写入过程相似,只要把write函数换成read函数,URL不变。不设置读取的数据类型时,显示控件为变体类型;设置数据类型时,读取的数据类型必须与发送的数据类型一致,例如发送的数据类型为数组,则读取的标准格式同样为数组,如把读取的格式定为字符串则将读不到任何信息。但可以通过其他函数把读取的数组转换为字符串,以便后面的程序方便使用。实现该接收功能的部分程序代码为:
实际应用证明整个系统运作良好,多参数、多类型、实时数据传输并显示等期望功能均已实现。数据准确可靠,获取方式灵活方便。系统使用DataSocket技术,实现了诊断中心客户端远程获取测试端的各种类型参数,并大大简化了数据通信程序的开发。使用Lab/WindowsCVI界面化编程,整个系统的构建极其方便和直观。
[1]宋宇峰.LabWindowsCVI逐步深入开发实例[M].北京:机械工业出版社,2003.
[2]刘君华,白鹏,汤晓君.基于LabWindowsCVI的虚拟仪器设计[M].北京:电子工业出版社,2003.
[3]LIU Yan,DataSocket technology and its application in remote data transmission measurement[C]//The Eighth International Conference on Electronic Measurement and Instruments,2007,16(1):7-15.
[4]寇小明,杨高科,杜丽.DataSocket技术及其应用[J].测控技术,2002(12):15-19.
KOU Xiao-ming, YANG Gao-ke, DU Li.DataSocket technology and its applications[J].Measurement and Control Technology,2002(12):15-19.
[5]蔡继军,张彦斌,薛德庆,等.DataSocket在网络化通信中的应用[J].网络信息技术,2005(24):18-23.
CAIJi-jun, ZHANG Yan-bin, XUE De-qing, etal.DataSocketin network communicationsapplications[J].DataSocket in Network Communications Applications,2005(24):18-23.
[6]袁海华,刘仕华,董雪琴.基于Internet的FW远程故障诊断系统[J].玻璃钢/复合材料,2002(1):26-28.
YUAN Hai-hua, LIU Shi-hua, DONG Xue-qin.Internetbased remote fault diagnosis system FW[J].FRP/Composite Materials,2002(1):26-28.