1、 1 引言随着计算机技术、大规模集成电路、通信技术等的飞速发展,仪器系统与计算机软件技术紧密结合,使得传统仪器的概念得以突破,出现了一种全新的仪器概念虚拟仪器。1986 年,美国国家仪器 (national instruments, 简称 NI)公司研发推出了图形化编程环境的开发平台LabVIEW 软件,随即就广泛地被工业界、学术界和研究实验室认可并接受,被公认为标准的数据采集和仪器控制软件,成为目前实现虚拟仪器软件设计最流行的工具之一。同时随着网络的迅速发展,通过将网络技术和虚拟仪器相结合,构成网络化虚拟仪器系统 ,是自动测试仪器系统的发展方向之一。所以通过网络进行数据共享是各种软件的发展趋
2、势,而 LabVIEW 软件平台正是适应了这一发展趋势,它具有强大的网络通信功能,使用 LabVIEW 实现网络通信有 4 大类方法:(1)使用网络通信协议编程实现网络通信,可以使用的通信协议类型包括 TCP/IP 协议、UDP 、串口通信协议、无线网络协议等;(2)使用基于 TCP/IP 的数据传输协议 DSTP 的 DataSocket 技术实现网络通信;( 3)使用共享变量实现网络通信;(4 )通过远程访问来实现网络通信。本文对以上各种实现方法进行探讨,最后简单地分析了各种方法的优缺点及应用场合。2 网络协议通信2.1 TCP 通信技术网络通信协议是网络中传递、管理信息的一些规范,是计算
3、机之间相互通信需要共同遵守的一些规则1。网络通信协议通常被分为多个层次,每一层完成一定的功能,通信在对应的层次之间进行。LabVIEW 中支持的通信协议类型包括 TCP/IP、UDP、串口通信协议、无线网络协议和邮件传输协议。TCP/IP 协议体系是目前最成功, 使用最频繁的Internet 协议 ,有着良好的实用性和开放性。它定义了网络层的网际互连协议 IP,传输层的传输控制协议 TCP、用户数据协议 UDP 等。LabVIEW 中为网络通讯提供了基于 TCP/UDP 的通讯函数供用户调用。这样用户可直接调用 TCP 模块中已发布的TCP VI 及相关的子 VI 来完成流程的编写,而无需过多
4、考虑网络的底层实现。在设计上采用 C/S(客户端/服务器)通信模式,VI 程序分为两部分:处理主机工作在 Server 模式,完成数据接收,并提供数据的相关处理;数据点计算机工作于 Client 模式,实现数据传送5 。 TCP 传输数据过程如下:首先由发送端发送连接请求,接收端侦听到请求后回复并建立连接,然后开始传输,数据传输完成后关闭连接,传输过程结束。2.2 利用 TCP 协议通信实例以下通过 C/S(客户端/服务器)通信模式实现的数据传输模式。在服务器端,用“TCP Create Listener”节点创建侦听,“TCP Wait on Listener”节点等待客户机连接,通过循环产
5、生 100 个正弦信号数据,用两个“TCP Write”节点来发送数据,第一个节点用来发送波形数据的长度,第二个节点发送波形数据,最后,用“TCP Close Connection”节点结束连接。程序框图如图 1 所示:图 1 TCP 服务器端程序框图在客户端,用“TCP Open Connection”节点打开 TCP 连接,用两个“TCP Read”节点读取数据,第一个节点接收波形长度作为第二个节点的输入,第二个节点接收波形数据,最后,用“TCP Close Connection”节点结束连接。程序框图如图 2 所示:图 2 TCP 客户端程序框图运行程序,结果如下图 3、4 :图 3 服
6、务器端显示结果图 4 客户端显示结果3 DataSocket 技术通信3.1 DataSocket 技术DataSocket 技术是一种面向测控领域的网上实时数据交换编程技术9,DataSocket 技术基于 Microsoft 的 COM 和ActiveX 技术,对 TCP/IP 协议进行高度封装,它包括了 DataSocket Server Manager、DataSocket Server 和DataSocket API 这几个工具软件,以及 DSTP (DataSocket Transfer Protocol)协议、通用资源定位符 URL (Uniform. Resource Loca
7、tor)和文件格式等技术规范。它能大大简化 Internet 网上计算机之间测控数据交换的编程工作。同时,DataSocket 也可用于一台计算机内或局域网中多个应用程序之间的数据交换。DataSocket Server Manager 是一个独立运行的应用程序,它的主要功能是设置 DataSocket Server 可连接的客户端程序的最大数目和可创建的数据项的最大数目,设置用户和用户组, 设置用户可创建数据项和读写数据项的权限 ,未经授权的用户不能在 DataSocket Server 上创建或读写数据项,数据项实际上是 DataSocket Server 中的数据文件。DataSocke
8、t Server 也是一个独立运行的应用程序,它能为用户解决大部分网络通信方面的问题,它负责监管 Manager 中所设定的各种权限的用户组和客户端程序之间的数据交换,自动处理底层的网络连接及客户程序之间的数据交换 ,使网络连接对客户端保持透明。DataSocket Server 与测控应用程序可安装在同一台计算机上,也可以分装在不同计算机上,后一种方法可增加整个系统的安全性,因为两台计算机之间可用防火墙加以隔离, 而且,DataSocket Server 程序不会占用测控计算机 CPU 的工作时间,从而使测控应用程序可以运行得更快。DataSocket API 包含有 Open 、Read、
9、Write 和 Close 等函数, 其中的 Read 和 Write 函数又分为单个或数组形式的字符串型、布尔型、数值型和波形等多种类型。DataSocket 技术可在 C 语言、VB 和 LabVIEW 等多种开发环境中应用,因此,这些函数有不同的形式,它们在 C 语言中是函数,在 VB 中是 ActiveX 控件,而在 LabVIEW 中则是功能模块,DataSocket 的 ActiveX 控件还可以应用在 VC、EXCEL、网页和其他支持 ActiveX 技术的环境中。3.2 利用 DataSocket 技术通信实例以下通过 DataSocket C/S 模式实现数据的远程传输。在服
10、务器端对 DataSocket Server Manager 进行设置,也可采用默认值。然后运行应用程序 DataSocket Server,打开 DataSocket Server。和上例一样通过循环产生 100 个正弦信号数据,利用 DataSocket Write 节点将数据发送到dstp 格式指定的连接中。程序框图如图 5 所示:图 5 DataSocket 服务器端程序框图在客户端,使用 DataSocket Read 节点将数据从指定的地址读取数据,并显示波形。程序框图如图 6 所示:图 6 DataSocket 客户端程序框图运行程序,结果和图 3、4 结果类似,波形相同,只是连
11、接输入格式不一样。4 共享变量通信4.1 共享变量共享变量是继 DataSocket 技术之后 LabView 为简化网络编程迈出的又一大步。通过共享变量,用户无需编程就可以在不同计算机之间方便的实现数据的共享。用户无需了解任何的底层复杂的网络通信,就能轻松地实现数据交换。用户建立和使用共享变量就如同操作全局变量一样方便。4.2 利用共享变量通信实例以下通过 C/S(客户端/服务器)通信模式实现数据的传输模式。由于共享变量只能存在于工程项目中,建立一个共享变量之前先得建立一个工程,然后在工程目录下选择NewVariable 选项,然后根据提示一步一步即可完成设置,但需要注意的是要实现网络通信变
12、量类型必须选择为“Network-Published”。这里在服务器中创建一个名为 Server_Variable 的共享变量,同样在客户端建立一个名为Client_Variable 的变量,两变量其数据和变量类型一致,都为一维数组双精度和网络发布类型。在客户端其程序框图如图 7 所示:图 7 共享变量服务器端程序框图在客户端只需把共享变量 Client_Variable 的 Bind to Source 设置为服务器中的 Server_Variable 即可,将其拖入程序框图。建立的程序框图如图 8 所示:图 8 共享变量客户端程序框图运行程序,结果如图 3、4 。5 远程访问5.1 远程访
13、问技术在 LabVIEW 中,实现远程访问的方式有两种:远程面板控制和客户端浏览器访问,且在实施这两种访问之前都需要对服务器进行配置。配置服务器包括 3 部分:服务器目录与日志配置、客户端可见 VI 配置和客户端访问权限配置。在 LabVIEW 中选择 “工具选项” 即可打开参数配置框,左侧分别可见“Web 服务器:配置” 、“Web 服务器:浏览器访问”。其中“Web 服务器:配置”是用来配置服务器目录和日志属性、“Web 服务器:可见 VI”用来配置服务器根目录下可见的 VI 程序,也即对客户端可操作的 VI 程序。“Web 服务器:浏览器访问”用来设置客户端的访问权限。完成服务器配置以后
14、,即可以选择远程控制面板或浏览器方式访问服务器、对服务器进行交互远程操作等。5.2 利用浏览器访问通信实例通过客户端浏览器访问时,首先需要在服务器端发布网页,然后才能从客户端访问,以实现远程通信。在服务器端发布网页。在 LabVIEW 中选择“工具Web 发布工具.”打开“Web 发布工具栏”,分别对其设置,最后确定即可,如图 9 所示:图 9 Web 发布工具在客户端通过网页浏览器访问服务器访问的页面。这样通过 Web 页面的发布就可实现网络的通信,且用户可与发布的前面板进行交互式操作,使用户可以通过 Internet 操作仪器设备。6 结论从图 1图 9 可以看出,利用以上四种通信方式都可
15、以把服务器端产生的正弦信号数据,通过网络通信成功地送至客户机进行显示。如果要实现界面的互操作,需采用远程访问方式,但需要注意的是使用此种方式进行网络通信时,产生的结果数据是保存在服务器端而不是客户端,如果客户端需要得到数据,还需使用网络通信协议、DataSocket 或共享变量传送数据。利用网络通信协议把数据从一个网络或 Internet 计算机传输到另外一台计算机或网络上是实现远程测控系统通信的最基本方式。但基于 DataSocket 技术的网络通信可以达到很高的数据传输效率 ,实时性能相当好,同时安全性能也可达到要求,这是网络协议通信所不具有的,但缺点是由于访问权限等的限制,客户端的控制功能太弱,需待改进。同时通过共享变量实现网络数据的传输也是一种值得提倡的方法,它传输速率高,低延迟还可以通过DataSocket 函数读写共享变量,应用灵活