在LabVIEW中实现基于C/S结构的远程数据采集
李海涛
(国防科技大学航天与材料工程学院,湖南长沙 410073)
摘 要:介绍在LabVIEW环境下利用Remote Panels技术、RDA技术、TCP技术和DataSocket技术实现基于C/S结构的远程数据采集(Remote DAQ)的方法及其特点,为构建远程虚拟仪器、DAQ技术在远程测试中的应用提供了解决思路。
关键词:远程数据采集;Remote Panels; RDA; TCP; DataSock et; LabVIEW; 虚拟仪器?
关键词:远程数据采集;Remote Panels; RDA; TCP; DataSock et; LabVIEW; 虚拟仪器?
Realization of Remote DAQ in LabVIEW Based on C/S Structure
LI Haitao
(College of Aerospace and Material Engineering, National University o f Defense Technology, Changsha 410073, China)
Abstract: How to use the remote panels, RDA, TCP or DataSocket t echnologies to realize remote DAQ was introduced in this paper, providing a solu tion for building remote VI and the using of DAQ technology in the application o f remote test.
Key words: remote DAQ; remote panels; RDA; TCP; data socket; Lab VIEW; VI
Key words: remote DAQ; remote panels; RDA; TCP; data socket; Lab VIEW; VI
1利用Remote Panels技术实现远程数据采集
从LabVIEW 6.1开始,LabVIEW集成了Remote Panels技术,允许用户直接在客户端计算机上打开并操作位于服务器端计算机上的VI的前面板,甚至可以将LabVIEW VIs的前面板窗口嵌入到一个网页中并在网页中直接操作它,这是一种软件操作界面共享方式。按照常规方式编写服务器端软件,控制DAQ设备完成数据采集,通过一定的设置将服务器端软件的前面板发布到客户机中,这样,用户在客户机上就可以直接操作位于服务器上的软件,实现远程数据采集。在LabVIEW中设定并使用Remote Panels仅需两个步骤:
第一步,在LabVIEW Web Server端的计算机上开启LabVIEW Web Server服务:?
在客户端使用Remote Panels之前,必须首先在Server计算机上运行LabVIEW,并利用LabVIEW的Options配置对话框配置Web Server的文件路径和网络参数、客户机访问权限和VIs访问权限。为了提供网页浏览器访问,必须在配置服务器时利用Web Publish Tool将网页发布出去。
第二步,在客户端计算机上连接并运行Remote Panels。有两种方式可以实现Remote Panels操作:
方式一:在LabVIEW环境中利用Connect to Remote Panels工具可以直接操作Remote Panels 。
方式二:利用网页浏览器在网页中直接操作Remote Panels。若在客户端的网页浏览器的地址栏中输入服务器的网址,即可实现在网页中直接操作Remote Panels。在局域网内,网址格式是:http://PcName:Port/ViName.htm;在Internet互联网上,网址格式为:http://IpAddr:Port/ViName.htm。当Remote Panels出现在浏览器上时,通过右键下拉菜单可以获得Remote Panels的控制权。利用网页浏览器操作Remote Panels不需要安装LabVIEW,只需安装一个LabVIEW Run?Time Engine即可。图2所示的是在IE浏览器中打开的一个位于服务器上的虚拟仪器前面板。
LabVIEW的Remote Panels不仅可以观看,而且可以在LabVIEW的环境中或浏览器上加以控制 。这个强大的功能让开发人员可以轻松的创建远程应用程序,使用户在周末的时侯坐在家中的计算机前轻松的监控办公室、实验室甚至生产线上的各种情况。这种方式的缺点是在客户端不能得到测试数据。
从LabVIEW 6.1开始,LabVIEW集成了Remote Panels技术,允许用户直接在客户端计算机上打开并操作位于服务器端计算机上的VI的前面板,甚至可以将LabVIEW VIs的前面板窗口嵌入到一个网页中并在网页中直接操作它,这是一种软件操作界面共享方式。按照常规方式编写服务器端软件,控制DAQ设备完成数据采集,通过一定的设置将服务器端软件的前面板发布到客户机中,这样,用户在客户机上就可以直接操作位于服务器上的软件,实现远程数据采集。在LabVIEW中设定并使用Remote Panels仅需两个步骤:
第一步,在LabVIEW Web Server端的计算机上开启LabVIEW Web Server服务:?
在客户端使用Remote Panels之前,必须首先在Server计算机上运行LabVIEW,并利用LabVIEW的Options配置对话框配置Web Server的文件路径和网络参数、客户机访问权限和VIs访问权限。为了提供网页浏览器访问,必须在配置服务器时利用Web Publish Tool将网页发布出去。
第二步,在客户端计算机上连接并运行Remote Panels。有两种方式可以实现Remote Panels操作:
方式一:在LabVIEW环境中利用Connect to Remote Panels工具可以直接操作Remote Panels 。
方式二:利用网页浏览器在网页中直接操作Remote Panels。若在客户端的网页浏览器的地址栏中输入服务器的网址,即可实现在网页中直接操作Remote Panels。在局域网内,网址格式是:http://PcName:Port/ViName.htm;在Internet互联网上,网址格式为:http://IpAddr:Port/ViName.htm。当Remote Panels出现在浏览器上时,通过右键下拉菜单可以获得Remote Panels的控制权。利用网页浏览器操作Remote Panels不需要安装LabVIEW,只需安装一个LabVIEW Run?Time Engine即可。图2所示的是在IE浏览器中打开的一个位于服务器上的虚拟仪器前面板。
LabVIEW的Remote Panels不仅可以观看,而且可以在LabVIEW的环境中或浏览器上加以控制 。这个强大的功能让开发人员可以轻松的创建远程应用程序,使用户在周末的时侯坐在家中的计算机前轻松的监控办公室、实验室甚至生产线上的各种情况。这种方式的缺点是在客户端不能得到测试数据。
2利用RDA技术实现远程数据采集
利用RDA(Remote Device Access)技术共享服务器上的设备,在客户机上编程直接控制服务器上的DAQ设备,实现远程数据采集。
RDA在编程方面与使用本机DAQ设备完全一样。在LabVIEW中利用RDA技术实现远程数据采集的步骤如下:
第一步,配置RDA服务器。RDA服务器需要安装NI-DAQ6.0(或更高版本)以及DAQ设备,设置服务器的IP地址,例如192.168.0.1,其子网掩码为255.255.255.0。然后启动服务器上的Remote Device Access Server即可。若有必要,可以在DAQ设备的属性对话框中设置RDA访问密码。
第二步,设置客户机。RDA客户端应安装与服务器相同版本的NI-DAQ,否则DAQ设备会无法连接。设置客户机的IP地址,例如192.168.0.2,其子网掩码为255.255.255.0。RDA客户机的设置比较复杂,通常按照下列步骤进行:
■在客户机的MAX(Measurement & Automation Explor er)左侧目录树中的Devices and Interfaces项的右键弹出菜单中选择“Create New”,在Create New窗口选择RDA/Ethernet Device。■在随后出现的Select Remote Computer对话框中输入服务器的IP地址或计算机名。■在随后出现的System对话框中设定设备号,若服务器上的DAQ设备设置了RDA访问密码,则还需在Password栏中输入正确的密码。
至此,就完成了客户机上RDA设备的添加,客户机的MAX左侧目录树中会出现这个RDA设备。从此以后,用户可以像在本地一样操作该设备。在客户机上直接编写DAQ软件,实现远程数据采集。
利用RDA(Remote Device Access)技术共享服务器上的设备,在客户机上编程直接控制服务器上的DAQ设备,实现远程数据采集。
RDA在编程方面与使用本机DAQ设备完全一样。在LabVIEW中利用RDA技术实现远程数据采集的步骤如下:
第一步,配置RDA服务器。RDA服务器需要安装NI-DAQ6.0(或更高版本)以及DAQ设备,设置服务器的IP地址,例如192.168.0.1,其子网掩码为255.255.255.0。然后启动服务器上的Remote Device Access Server即可。若有必要,可以在DAQ设备的属性对话框中设置RDA访问密码。
第二步,设置客户机。RDA客户端应安装与服务器相同版本的NI-DAQ,否则DAQ设备会无法连接。设置客户机的IP地址,例如192.168.0.2,其子网掩码为255.255.255.0。RDA客户机的设置比较复杂,通常按照下列步骤进行:
■在客户机的MAX(Measurement & Automation Explor er)左侧目录树中的Devices and Interfaces项的右键弹出菜单中选择“Create New”,在Create New窗口选择RDA/Ethernet Device。■在随后出现的Select Remote Computer对话框中输入服务器的IP地址或计算机名。■在随后出现的System对话框中设定设备号,若服务器上的DAQ设备设置了RDA访问密码,则还需在Password栏中输入正确的密码。
至此,就完成了客户机上RDA设备的添加,客户机的MAX左侧目录树中会出现这个RDA设备。从此以后,用户可以像在本地一样操作该设备。在客户机上直接编写DAQ软件,实现远程数据采集。
3利用TCP技术实现远程数据采集
LabVIEW提供了一系列用于实现网络数据传输的TCP节点(功能函数)。编写服务器端软件,控制DAQ设备完成数据采集,然后利用TCP节点编程将数据发布到网络上。在客户端软件中利用TCP节点接收这些数据即可实现远程数据采集。双机通信的流程如图3所示。该方法实际上是通过编程实现测试数据的传输。
服务器端软件的框图程序如图4所示,客户机端软件的前面板及框图程序如图5所示。
LabVIEW提供了一系列用于实现网络数据传输的TCP节点(功能函数)。编写服务器端软件,控制DAQ设备完成数据采集,然后利用TCP节点编程将数据发布到网络上。在客户端软件中利用TCP节点接收这些数据即可实现远程数据采集。双机通信的流程如图3所示。该方法实际上是通过编程实现测试数据的传输。
服务器端软件的框图程序如图4所示,客户机端软件的前面板及框图程序如图5所示。
4利用DataSocket技术实现远程数据采集
DataSocket是NI公司推出的一项基于TCP/IP标准的面向测量和自动化工程的网上实时高速数据交换的新技术,可用于一个计算机内或者网络中多个应用程序之间实时数据的共享和发布。DataSocket利用dstp(DataSocket Transfer Protocol)协议、通用资源定位符URL进行网络通信。DataSocket摒除了较为复杂的TCP/IP底层编程,克服了传输速率较慢的缺点,大大简化甚至免除了Internet编程[1]。
LabVIEW6i以上的LabVIEW版本中,所有控件都增加了一个叫做DataSocket Connection的特殊属性,利用这个属性,可以实现不同计算机上相对应的两个甚至多个同类别控件之间的DataSocket通信。
在控件的DataSocket Connection属性的配置对话框中可以设置该控件的DataSocket URL地址,地址的格式如下:dstp://servername/dataname,例如:dstp://lht/wave。如果为两台计算机中的两个类型相同的LabVIEW控件设置相同的DataSocket ConnectionURL地址(例如都是dstp://lht/wave),并且其连接类型(Connection Type)都设为Publish and Subscribe,这两个控件就由DataSocket连接起来,这两个控件的值会完全保持同步,其中一个控件发生了变化,另一个控件也会同步发生同样的变化。
利用DataSocket的这种特性,就可实现远程数据采集:利用服务器端软件控制DAQ设备完成数据采集,将测试数据放到一个数组控件中,在客户机端软件中利用同样的数组控件通过DataSocket Server接收这些数据,然后通过进一步的编程对这些数据进行相关处理。这种方法实际上就是利用DataSocket的数据共享获得服务器端的数据。
与方法三相比,方法四不需要专门编写用于发送和接收数据的程序,但是需要在服务器和客户机上额外安装一个DataSocket Server软件。
DataSocket是NI公司推出的一项基于TCP/IP标准的面向测量和自动化工程的网上实时高速数据交换的新技术,可用于一个计算机内或者网络中多个应用程序之间实时数据的共享和发布。DataSocket利用dstp(DataSocket Transfer Protocol)协议、通用资源定位符URL进行网络通信。DataSocket摒除了较为复杂的TCP/IP底层编程,克服了传输速率较慢的缺点,大大简化甚至免除了Internet编程[1]。
LabVIEW6i以上的LabVIEW版本中,所有控件都增加了一个叫做DataSocket Connection的特殊属性,利用这个属性,可以实现不同计算机上相对应的两个甚至多个同类别控件之间的DataSocket通信。
在控件的DataSocket Connection属性的配置对话框中可以设置该控件的DataSocket URL地址,地址的格式如下:dstp://servername/dataname,例如:dstp://lht/wave。如果为两台计算机中的两个类型相同的LabVIEW控件设置相同的DataSocket ConnectionURL地址(例如都是dstp://lht/wave),并且其连接类型(Connection Type)都设为Publish and Subscribe,这两个控件就由DataSocket连接起来,这两个控件的值会完全保持同步,其中一个控件发生了变化,另一个控件也会同步发生同样的变化。
利用DataSocket的这种特性,就可实现远程数据采集:利用服务器端软件控制DAQ设备完成数据采集,将测试数据放到一个数组控件中,在客户机端软件中利用同样的数组控件通过DataSocket Server接收这些数据,然后通过进一步的编程对这些数据进行相关处理。这种方法实际上就是利用DataSocket的数据共享获得服务器端的数据。
与方法三相比,方法四不需要专门编写用于发送和接收数据的程序,但是需要在服务器和客户机上额外安装一个DataSocket Server软件。
5结论
使用Remote Panels、RDA、TCP和DataSocket等4种技术都可实现远程数据采集,它们各有特点,表1对这4种技术进行了比较。
Remote Panels技术通过共享软件界面的方式使用户通过IE浏览器直接操作服务器上的DAQ软件,适用于在客户机上进行现场监控。RDA技术通过共享硬件的方式使用户直接控制网络上的远端DAQ设备成为可能。TCP技术通过编程实现数据发布和传输,编程稍为复杂,但灵活。DataSocket技术通过数据共享的方式传送测控参数,是一种简单易用的数据传输方法,其最大的特点是高速的实时数据的发布。上述4种技术各有优缺点,用户可以根据它们各自的特点,灵活使用这些技术构建功能强大的远程虚拟仪器。
使用Remote Panels、RDA、TCP和DataSocket等4种技术都可实现远程数据采集,它们各有特点,表1对这4种技术进行了比较。
Remote Panels技术通过共享软件界面的方式使用户通过IE浏览器直接操作服务器上的DAQ软件,适用于在客户机上进行现场监控。RDA技术通过共享硬件的方式使用户直接控制网络上的远端DAQ设备成为可能。TCP技术通过编程实现数据发布和传输,编程稍为复杂,但灵活。DataSocket技术通过数据共享的方式传送测控参数,是一种简单易用的数据传输方法,其最大的特点是高速的实时数据的发布。上述4种技术各有优缺点,用户可以根据它们各自的特点,灵活使用这些技术构建功能强大的远程虚拟仪器。
?
参考文献?
[1]杨乐平,李海涛,等.LabVIEW高级程序设计[M].北京:清华大学出版社,2 003.
[2]谭洁明,王思华.虚拟仪器的两种远程测控技术[J].仪器仪表学报,2001,4.
[2]谭洁明,王思华.虚拟仪器的两种远程测控技术[J].仪器仪表学报,2001,4.
方法一,软件操作界面共享方式,利用Remote Panels技术实现远程数据采集[1];方法二,DAQ设备共享方式,采用RDA技术实现DAQ设备的远程控制[2];方法三,数据发布方式,利用TCP技术实现远程数据采集[1];方法四,数据共享方式,利用DataSocket技术实现远程数据采集[1]。无论采用哪种方式,系统都由通过网络连接的客户机(Client)和服务器(Server)构成,其中DAQ设备安装在服务器上,客户机通过网络控制服务器上的DAQ设备完成数据采集。系统组成如图1所示。