• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 测试测量 > Labview 虚拟仪器 > LabVIEW中远程数据采集的实现

LabVIEW中远程数据采集的实现

录入:edatop.com    点击:
1. 基于B/S和C/S模式的网络通信技术
(1)TCP与UDP
TCP与UDP为传输层协议,当需要保证数据传输的完整性与可靠性时,TCP为当然的选择;UDP则适合于大量的连接和高速度传输。。LabVlEW 中对这两种协议的编程进行了高度集成,将Winsock DLL封起来,形成TCP与UDP图形化编程节点与VI。
(2)DataSocker
DataSocket是NI提供的一种编程工具,借助它可以在不同的应用程序和数据源之间传递数据。。DataSocket可以访问本地文件以及HTTP和FTP服务器上的数据。DataSocket为低层通讯协议提供了一致的API,编程者无需为不同的数据格式和通信协议编写具体的程序代码,而且这些数据源可以分布在不同的计算机上。使用一种增强数据类型来交换仪器类型的数据,这种数据类型包含数据特性和实际测试数据。用类似于Web中的统一资源定位器(URL)定位数据源,URL不同的前缀表示了不同的数据类型。
(3)VI Server
VI Server是LabVlEW 独有的一项技术。利用VI Server技术用户可以编程动态控制位于本地或远程计算机上的LabVlEW Vls,但不能在本地打开位于远程计算机上的VI前面板。
使用VI Server,首先需要对VI Server进行设置,设置内容有三项:Configuration、TCP/IP Access、Exported VIs;接着利用LabVlEW 定义好的Application类和VI类的属性和方法进行编程来控制应用程序和VI。
(4)Remote Panels
LabVlEW 提供的Web Server,可构建两种网络通信方法:一种是将已被载人服务器内存的VI前面板图像嵌入网页;另一种方法是利用Remote Panels技术,实现用户可直接在本地计算机上打开并操作位于远程计算机上VI的前面板,甚至在网页
中打开并操作它。也可以开发与服务器端的数据采集应用程序进行TCP/UDP/DSTP通信的ActiveX控件,并将其嵌入网页,用Web服务器提供Web服务,客户端通过下载的ActiveX控件与服务器端的数据采集程序通信。
2. 远程数据采集实现
基于NI PCI-6221的简单采集VI如图1所示,采集数据为一个带噪声的方波电压波形信号。

图1(a)前面板

图1(b)框图程序
图1 DAQ.vi前面板和框图程序
下文基于LabVIEW 的上述四种通信方式分别以此DAQ.vi做为子程序,将电压信号进行网络通信,从而实现远程数据采集。
2.1 基于TCP/IP通信的数据采集
图2 TCP远程采集服务器端前面板及框图程序
图3 TCP远程采集客户端前面板及框图程序
利用TCP进行双机通信实现远程数据采集如图2和图3所示。运行这两个程序,若首先运行服务器端VI,高亮运行可以观察到VI不进入循环,直到运行客户端VI时,服务器端VI才采集数据,同时服务器端和客户端显示数据。两台PC显示器上的波形图数据一致,表明远程数据采集成功。关闭时若先关闭客户端,服务器端继续采集;若关闭服务器,则客户端停止数据显示。
2.2 基于DataSocket技术的数据采集
DataSocket通信的三要素为:Publisher、DataSocket Server和Subscriber。Publisher将数据写到DataSocket中,而Subscriber读出数据。
利用DataSocket分别编写服务器端和客户端软件,可以实现客户端与服务器端运行状态完全相同,即客户端不仅可以显示服务器前面板上的数据和控件状态,而且可以控制服务器端面板上的控件动作,因此也是一种实现网络测控的方法。
创建客户端程序,只需将服务器端前面板的所有控件复制到一个新的VI中,即客户端前面板与服务器端前面板完全相同。由于DataSocket只能传递控件对应变量的值,而不能传递控件的属性,因此客户端需要对控件值的变化而引起的控件属
性的变化进行编程。利用DataSocket通信实现远程数据采集的程序如图4所示。 [p]
运行时,客户端和服务器端都打开DataSocket Server。首先运行服务器VI,服务器端开始采集数据并显示,若再运行客户端VI,此VI获得服务器端数据,从自身运行时开始与服务器端几乎同步显示。若先关闭客户端,服务器端继续采集数据。
a)服务器端框图程序
b) 客户端框图程序
图4 DataSocket服务端和客户端框图程序
2.3 基于VI Server的数据采集
服务器端安装并运行LabVIEW,VI Server的设置为:1)VI服务器:配置对话框中的TCP/IP项确保选中;2)VI 服务器:机器访问对话框中若没有设置所有计算机(用“*”表示)有访问权,须添加指定客户机的名称;3)VI 服务器:导出VI对话框若没有设置所有VI,须添加特定的VI名称。
填人远程计算机名或lP地址,客户端就能调用服务器端硬盘中(或内存中,只需要稍加修改)的DAQ.Vi数据采集程序。
利用Vl Server实现远程数据采集的程序如图5所示。
图5 Vl Server客户端前面板殛框图程序
2.4 Remote Panels
LabVlEW 的远程面板技术使得客户机可以在LabVlEW 环境中操作远程面板,亦可用浏览器在网页中操作远程面板。LabVlEW 默认的远程面板客户端数目是一个,要让更多的客户同时使用远程面板功能,需要向Nl公司购买授权。当有多个客户端授权时,服务器端需要使用“远程面板连接管理器”工具来监控客户端的连接。
实现远程面板的简单步骤是:① 配置LabVlEW 的Web Server;② 在服务器端计算机中打开DAQ.vi前面板;③在客户端LabVIEW 中选择"操作->连接远程前面板...”在弹出的对话框中设置服务器端计算机的IP地址、域名或计算机名;单击“Connect”,即可。
通过网页浏览器在网页中操作Remote Panels,只需在网页浏览器的地址栏中输入http://PcName:Port/ViName.htm(局域网)或http://IpAddr:Port/ViName.htm(Internet),本例:http://192.168.1.111/DAQ.htm。
3 四种实现远程数据采集方式比较

表1 本文四种实现远程数据采集方式比较

项目

TCP/IP

DataSocket

VI Server

Remote Panels

编程难易

I.(最难),服务器端客户端都需编程,且需了解低层协议

II. 服务端客户

端都需编程

III.服务器端做DAQ子VI,客户端编程调用

IIII.最方便,只要相关设置即可

服务器端

LabVIEW/NI-

DAQmx/采集卡

LabVIEW/NI-

DAQmx/采集卡/DataSocket Server/服务器端软件

LabVIEW/NI-

DAQmx/采集卡

LabVIEW或第三方软件/NI-

DAQmx/采集卡

客户端

LabVIEW

DataSocket Server/客户端软件

LabVIEW

LabVIEW或网页浏览器

何时进行数据采集

客户端运行VI,服务端运行DAQ子VI

客户端和服务器端都运行DataSocket Server后,服务器端VI运行DAQ子VI

客户端调用服务器段DAQ子VI

服务器端VI运行子VI

特点

在LabVIEW中虽具有功能模块,但要实现远程面板功能,编程需要熟悉网络知识,难度较大。

高速实时数据发布和数据共享,克服了传输速率慢的特点,是DataSocket与其他方式相比最大的优势。

实际是远程VI调用,在本地不能显示远程VI的前面板。只需在客户端编程,数据采集程序位于服务器。

除LabVIEW也有第三方发布,例如:LabVNC。客户端可以显示远程VI前面板。在LabVIEW或网页中直接操作即可,实现简单。

因实现功能相同,各种方法均只作了数据采集和显示,编程方式一致,利用Vl性能略图比较各方式内存开销可大致对各种方式的远程数采性能情况作个参考。

点击浏览:矢量网络分析仪、频谱仪、示波器,使用操作培训教程

上一篇:LabView学习笔记(5)利用反馈节点求数列前N项和
下一篇:LabView学习笔记(6)跑马灯之顺序结构与局部变量的使用

微波射频测量操作培训课程详情>>
射频和天线工程师培训课程详情>>

  网站地图