摘要:简要介绍了LabVIEW中的TCP、RDA、浏览器和DataSocket四种网络通信方式及其原理,重点分析了利用DataSocket技术实现远程资源共享的两种方法,在对这两种方法进行综合的基础上,提出了一种多客户端同时远程共享资源的设计方案。实验结果证明,该方案能在一定程度上满足实际应用需求。
关键词:LabVIEW;远程共享;DataSocket
0 引言
与传统仪器相比,虚拟仪器的一个显著特点就是仪器功能由用户基于计算机通过软件进行定义。而随着计算机互联网的普及,虚拟仪器的网络化也应运而生。将虚拟仪器技术与网络技术相结合,构成远程虚拟测控系统,是当前虚拟仪器一个非常重要的发展方向。
在虚拟仪器软件平台LabVIEW中,提供了TCP、RDA、浏览器和DataSocket四种网络通信方式,根据实际的应用需求,基于这些基本方式设计具体的网络互联方案,就可以达到远程测试、控制和资源共享的目的。
1 LabVIEW中的几种常用通信方式
LabVIEW中几种常用通信方式有: (1)TCP方式,TCP/IP协议在LabVIEW的应用主要是传输层,包含了UDP和TCP两个协议,两个协议都有相应的功能函数。由于UDP协议可靠性比较差,因此人们在更多场合使用TCP。利用TCP协议我们可以采用服务器/客户机模式进行通信。在用TCP节点进行通信时,服务器程序和客户机程序都要指定相同的网络通信端口。 (2)RDA方式,NI公司提供了远程设备访问服务器RDA(remote device access)Server,这样可以实现对远程数据采集卡的访问。用户可以用MAX(measure&automation explorer)来进行远程采集卡的设置。设置完成后,异地的数据采集卡就成了本地机的虚拟数据采集卡,并且被分配有相应的设备号。(3)浏览器方式,浏览器方式也是一种基于TCP协议的通讯方式,与直接使用底层的TCP函数相比,用户使用浏览器方式时不需要编程,只需设定网络通信参数,就可以直观并且方便地使用浏览器进行远程监视。
以上三种方式适合单台客户机访问远程带有采集卡的服务器,但是当有多台客户机访问同一个采集卡时,必须在服务器端增加任务管理程序或者通过申请控制权等方式来对多客户的请求进行处理。最重要的,如果多客户机要从同一个远程采集卡在同一时间获取实时数据,这三种方式是无法实现的。下面介绍第四种方式: (4)DataSocket技术,DataSocket(DS)包括了DS server Manager、 DS Server和DS函数库等工具,以及数据传输协议DSTP(DataSocket TraFISfer Protoco1)、统一资源定位符URL(uniform Resource Locator)和文件格式等技术规范。利用这些工具,可大大简化网络中计算机之间数据交换的编程工作。在LabVIEW中,所有的控件都增加了一个叫做DataSocket Connection URL的特殊属性,利用这个属性可以实现不同计算机上相对应的两个或者多个同类型控件之间的DataSocket通信。如果为不同计算机中的两个类型相同的LabVIEW控件设置相同的DataSocket Connection URL地址,那么,这两个控件就由DataSocket连接起来,这两个控件的值就会完全保持同步。其中,一个控件发生了变化,另一个控件也会发生同样的变化。
2 利用DataSocket技术实现资源远程共享
2.1 利用DS技术实现采集卡共享的两种方法
数据采集卡是数据采集系统中重要的硬件之一,在有些场合,例如教学实验室,如果每台计算机都配备一块采集卡,则代价较高,因此可以考虑借助DS技术实现数据采集卡的共享,即多台计算机共享一台计算机(服务器)上的采集卡。硬件接线原理图如图l所示,用户不必在每台客户机上都配备数据采集卡,只需在服务器上配置采集卡即可,这样可以充分利用资源,节省费用。数据采集卡共享程序可以用于连接位于一个局域网内的计算机组。
利用DS技术实现数据采集卡共享的基本思想是,利用DS Server进行客户机和服务器之间的信息交换和传递,将服务器上采集卡采集到的数据传给客户机。考虑到不同的用户对共享要求可能不同,可以尝试两种方法。
1)方法l是考虑只在服务器上配置数据采集程序。首先设计一个输入输出数据格式的规范,用户在客户端按约定的格式填写表格,发给服务器,服务器完成采集任务后,将采到的数据再按约定的格式返回客户端。在服务器端设计一个管理程序,对客户机的请求进行管理,然后按照顺序由服务器执行相应的数据采集。每次采集完成后,将数据发送给DS Server,客户机可以从DSServer中读取采集到的数据。
此方法的优点是客户机不调用任何有关数据采集的程序,因而客户机上不必安装有关采集卡设置的程序。其局限性在于,不同的采集程序需要的采集参数不同,而且采集数据后得到的数据格式有可能不同,这就需要对不同的采集函数设计相应的客户机程序。这时客户机程序和服务器程序的设计将会过于复杂。
2)方法2是在NI公司提供的RDA的基础上,想办法在服务器上增加一个任务排队管理程序,使虚拟采集卡可以被多个用户共享,该方案比较直接,在客户端不需要开发过多的新程序,但有一定难度。用户可以利用Measurement Artomation Explorer 来进行远程采集卡的设置,设置完成后,在本地机上就会出现一块虚拟的数据采集卡,并且分配有相应的设备号。为了避免多个客户机同时访问同一个远程采集卡时发生冲突,导致程序出错,必须考虑在服务器端增加任务管理程序,以对客户机的请求进行管理,这样就可避免多个客户机同时访问一个远程采集卡时发生的冲突。