1、网络通信技术网络通信技术TCP/IP 局域网通信局域网通信 nLabVIEW具有强大的网络通讯功能,这种功能具有强大的网络通讯功能,这种功能使得使得LabVIEW的用户可以很容易编写出具有强的用户可以很容易编写出具有强大网络通讯能力的大网络通讯能力的LabVIEW应用软件,实现远应用软件,实现远程虚拟程虚拟 仪器。仪器。nLabVIEW支持支持TCP/IP协议、协议、UDP协议等等。而协议等等。而且且NI公司还开发了一种公司还开发了一种DATASOCKET技术,很技术,很大程度上的简化甚至免除了网络通讯编大程度上的简化甚至免除了网络通讯编 程,用户程,用户很容易地在互联网实现高速数据交换。很容
2、易地在互联网实现高速数据交换。nTCP/IP协议(传输控制协议协议(传输控制协议/互联网络协议)是互联网络协议)是INTERNET最基本的协议,它允许分布在各地的最基本的协议,它允许分布在各地的装着完全不同系统的计算机互相通信。装着完全不同系统的计算机互相通信。n由于由于INTERNET的广泛使用,使得的广泛使用,使得TCP/IP成了成了事实的标准。事实的标准。(一)(一)TCP/IP协议的体系结构协议的体系结构 nTCP/IP是一个四层协议:是一个四层协议:n链路层:包括操作系统中的设备驱动程序和计算机中对应链路层:包括操作系统中的设备驱动程序和计算机中对应的网络接口卡,他们一起处理与电缆等
3、传输媒介的物理接的网络接口卡,他们一起处理与电缆等传输媒介的物理接口细节。口细节。n网络层:该层负责传输数据,包括将数据分割打包和组合。网络层:该层负责传输数据,包括将数据分割打包和组合。它需要确定的它需要确定的IP地址,以寻找路由。地址,以寻找路由。n传输层:该层主要为两台主机上的应用程序提供点到点的传输层:该层主要为两台主机上的应用程序提供点到点的数据通讯。数据通讯。n传输控制协议传输控制协议TCP提供质量保证的数据传输,负责数据的分组、提供质量保证的数据传输,负责数据的分组、质量控制和超时重发。质量控制和超时重发。n用户数据报协议用户数据报协议UDP只提供简单的数据抱传输,在及时性服务中
4、只提供简单的数据抱传输,在及时性服务中由重要的用途。由重要的用途。n应用层:该层负责处理实际的应用程序细节,包括应用层:该层负责处理实际的应用程序细节,包括Telnet、Http、Ftp、SMTP等著名协议,也包括我们自等著名协议,也包括我们自己编写的网络应用程序。己编写的网络应用程序。nIP地址:互联网上的每个接口(一台主机可以有几个接口)必须有地址:互联网上的每个接口(一台主机可以有几个接口)必须有一个唯一的一个唯一的Internet地址(也称作地址(也称作IP地址),地址),IP地址长地址长32 bit,这,这些些32位的地址通常写成四个十进制的数,其中每个整数对应一个字位的地址通常写成
5、四个十进制的数,其中每个整数对应一个字节,例如节,例如202.38.64.1。另外,。另外,127.0.0.1将被认为是本机将被认为是本机(LocalHost)的的IP地址地址 n端口号:大多数情况下,只是将数据包发送给给定地址的机器,例如端口号:大多数情况下,只是将数据包发送给给定地址的机器,例如202.38.64.1,是不足以确定到底要把数据包发送给机器的哪一个进,是不足以确定到底要把数据包发送给机器的哪一个进程的。端口号允许你作更确定的指定。程的。端口号允许你作更确定的指定。n应用程序可以使用从应用程序可以使用从1到到65535之间的任何一个端口号,不过在选择之间的任何一个端口号,不过在
6、选择端口时,必须特别小心,因为有些可用端口号是为端口时,必须特别小心,因为有些可用端口号是为“已知的已知的”(即固(即固定的)服务保留的(比如说文件传输协议和超文本传输协议,即定的)服务保留的(比如说文件传输协议和超文本传输协议,即FTP和和HTTP)。)。“已知的协议已知的协议”,即固定协议,采用的端口由,即固定协议,采用的端口由“互联网互联网编号分配认证(编号分配认证(IANA)”控制和分配。控制和分配。n端口号分为下面这三类:端口号分为下面这三类:“已知已知”端口、已注册端口、动态和(或)端口、已注册端口、动态和(或)私用端口。私用端口。0 1 0 2 3 由由 I A N A 控 制,
7、是 为 固 定 服 务(如控 制,是 为 固 定 服 务(如F T P,H T T P,t e l n e t,D N S 等等)保 留 的。保 留 的。1024 49151是是IANA列出来的、已注册的端口,供普通用户列出来的、已注册的端口,供普通用户的普通用户进程或程序使用。的普通用户进程或程序使用。49152 65535是动态和(或)私用端口。是动态和(或)私用端口。n普通用户应用应该选择普通用户应用应该选择1024 49151之间的已注册端口,从而避之间的已注册端口,从而避免端口号已被另一个应用或系统服务所用。免端口号已被另一个应用或系统服务所用。(二)Windows Sockets
8、nWindows Sockets规范以U.C.Berkeley大学BSD UNIX中流行的Socket接口为范例定义了一套Micosoft Windows下网络编程接口。nWindows Sockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。n应用程序调用Windows Sockets的API实现相互之间的通讯。nWindows Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。(三)套接字(三)套接字 n套接字套接字(Sockets)是通讯端点的一种抽象,它提供了一种是通讯端点的一种抽象,它提供了一种发送和接收数据的机制。发
9、送和接收数据的机制。n在在Windows套接字中,它有两种形式,套接字中,它有两种形式,数据报套接字(Datagram Sockets)和流式套接字和流式套接字(Stream Sockets)。n数据报套接字提供了一种不可靠的、无连接的数据包数据报套接字提供了一种不可靠的、无连接的数据包(packet)通信方式。在这里通信方式。在这里“不可靠不可靠”的意思是指发送的意思是指发送一个数据包不能获得担保,也不能保证数据包按照放送一个数据包不能获得担保,也不能保证数据包按照放送的顺序到达。实际上,同一分组数据报可能不止一次的的顺序到达。实际上,同一分组数据报可能不止一次的被发送。数据报套接字使用用户
10、数据报协议被发送。数据报套接字使用用户数据报协议(UDP协议协议).n流式套接字提供了一种可靠的面向连接的数据传输方式,提供了一种可靠的面向连接的数据传输方式,实现了无差错无重复的顺序数据传输。流式套接字使用实现了无差错无重复的顺序数据传输。流式套接字使用传输控制协议传输控制协议(TCP协议协议)。n无连接服务器一般都是面向事务处理的,一个请求一个无连接服务器一般都是面向事务处理的,一个请求一个应答就完成了客户程序与服务程序之间的相互作用。应答就完成了客户程序与服务程序之间的相互作用。n面向连接服务器处理的请求往往比较复杂,不是一来一面向连接服务器处理的请求往往比较复杂,不是一来一去的请求应答
11、所能解决的,而且往往是并发服务器。去的请求应答所能解决的,而且往往是并发服务器。TCP通信1.TCP协议简介协议简介 TCP协议是协议是TCP/IP协议中的一个子协议。协议中的一个子协议。TCP/IP是是Transmission Control Protocol/Internet Protocol的简写,名为的简写,名为传输控制协议传输控制协议/互联网络协议。是互联网络协议。是20世纪世纪70年代由美国国防部开发的协议标准。年代由美国国防部开发的协议标准。TCP提供了一种面向连接的、可靠的传输提供了一种面向连接的、可靠的传输层服务。层服务。2.TCP节点n在在LabVIEW8.2中,中,TCP
12、 节点位于函数选板节点位于函数选板的【数据通信】的【数据通信】【协议【协议】【TCP】子选】子选板中板中。3.TCP通信编程举例例例 利用利用TCPTCP协议进行协议进行双机通信双机通信 双机通信流程如图双机通信流程如图服务器VI的前面板和程序框图客户机VI的前面板和程序框图UDP通信1.UDP协议简介协议简介 UDP(User Datagram Protocol),用户数据传,用户数据传输协议,是一个无连接模式协议,提供向另一用户输协议,是一个无连接模式协议,提供向另一用户程序发送信息的最简协议机制,使用程序发送信息的最简协议机制,使用IP 路由功能把路由功能把数据包发送到目的地。数据包发送
13、到目的地。UDP有下述几个特性:有下述几个特性:UDP是一个无连接协议。是一个无连接协议。由于不建立连接,因此一台服务器可同时向多个客户机传输由于不建立连接,因此一台服务器可同时向多个客户机传输相同的信息。相同的信息。UDP信息包的标题很短,只有信息包的标题很短,只有8个字节,相对于个字节,相对于TCP的的20个个字节信息包的额外开销很小。字节信息包的额外开销很小。吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。速率、传输带宽、源端和终端主机性能的限制。2.UDP节点n在在LabVIEW8.2中,
14、中,UDP 节点位于函数选板节点位于函数选板的【数据通信】的【数据通信】【协议【协议】【UDP】子选】子选板中板中 3.UDP通信编程举例例例7.4 将服务器端将服务器端产生的正弦信号产生的正弦信号由由UDP Write节节点发送到客户机。点发送到客户机。服务器服务器VIVI的前面的前面板和程序框图板和程序框图客户机VI的前面板和程序框图 DataSocket通信1.DataSocket基本概念基本概念 DataSocket是是NI公司推出的一项基于公司推出的一项基于TCPIP协议的新技术,协议的新技术,DataSocket面向测量和网上实时面向测量和网上实时高速数据交换,可用于一台计算机内或
15、者网络中多高速数据交换,可用于一台计算机内或者网络中多个应用程序之间的数据交换。个应用程序之间的数据交换。DataSocket的体系结构如图的体系结构如图 DataSocket的组成nDataSocket由由 DataSocket API DataSocket Server组成组成 DataSocket API是一个和协议、编程是一个和协议、编程语言、操作系统无关的应用程序接口,能够语言、操作系统无关的应用程序接口,能够把测量数据转化为适合在网络上传输的数据把测量数据转化为适合在网络上传输的数据流。流。DataSocket Server是一个独立部分,是一个独立部分,可以把现场数据高速传给远端
16、客户。可以把现场数据高速传给远端客户。发布者、服务器和接收者之间的关系n用用DataSocket Server发布数据需要发布数据需要3个部分:个部分:发布者(发布者(publisher)服务器(服务器(DataSocket Server)接收者(接收者(subscriber)三者关系如图三者关系如图 DataSocket 服务器 发布者 接收者 应用程序 接收者 Web Page(1)DataSocket Server ManagernDataSocket Server Manager是一个独立是一个独立运 行 的 程 序,它 的 主 要 功 能 是 设 置运 行 的 程 序,它 的 主 要
17、 功 能 是 设 置DataSocket Server 可连接的客户程序的最可连接的客户程序的最大数目和可创建的数据项的最大数目,创建大数目和可创建的数据项的最大数目,创建用户组和用户,设置用户创建数据项和读写用户组和用户,设置用户创建数据项和读写数据项的权限。数据项的权限。DataSocket Server Manager窗口(2)DataSocket ServenDataSocket Server 也是一个独立运行的程序,也是一个独立运行的程序,它负责监管它负责监管DataSocket Server Manager中所设中所设定 的 各 种 权 限 和 客 户 程 序 之 间 的 数 据
18、交 换。定 的 各 种 权 限 和 客 户 程 序 之 间 的 数 据 交 换。DataSocket Server 运行后的窗口如图。运行后的窗口如图。2.DataSocket节点n在在LabVIEW8.2中,中,DataSocket节点位于节点位于函数选板的【数据通信函数选板的【数据通信】【DataSocket】子选板中子选板中 在Web上发布VI n LabVIEW可以将可以将VI发布到发布到Web上,这样用上,这样用户就可以通过浏览器来访问户就可以通过浏览器来访问VI程序的前面板,程序的前面板,甚至还可以控制远程计算机上甚至还可以控制远程计算机上VI程序的运行。程序的运行。n网站服务器、
19、网站服务器、VI及远程用户客户端的关系及远程用户客户端的关系 VI 远程用户 客户端 网站服务器 远程用户 客户端 远程用户 客户端 Web服务器配置 Web Web服务器配置界面服务器配置界面 Web服务器可见VI配置界面 Web服务器浏览器访问配置界面 Web发布网页配置 选择选择VIVI和查看选项界面和查看选项界面选择HTML输出界面 保存新网页界面客户端的远程连接连接远程前面板界面连接远程前面板界面 客户端运行结果 在在WebWeb上浏览程序前面板时上浏览程序前面板时URLURL填写格式为:填写格式为:Http:/202.197.33.63/.snap?WebHttp:/202.197
20、.33.63/.snap?Web发布程发布程序序.vi.vi 这里这里202.197.33.63202.197.33.63为计算机为计算机IPIP地址,地址,WebWeb发布程序发布程序.vi.vi为希望查看的程序名,注意必为希望查看的程序名,注意必须填写须填写.vi.vi。.snap?.snap?表示返回一个静态前面板。表示返回一个静态前面板。如将如将 .snap?.snap?改写为改写为.monitor?.monitor?则返回动态则返回动态的图像。的图像。可以监测远程计算机上一个程序的前面板,甚可以监测远程计算机上一个程序的前面板,甚至完全控制一个程序的运行。至完全控制一个程序的运行。前
21、面板的远程链接的方法如下:点击前面板的远程链接的方法如下:点击OperateConnect to Remote PanelOperateConnect to Remote Panel,弹出以下对,弹出以下对话框:话框:前面板的远程链接前面板的远程链接WebWeb浏览的前面板浏览的前面板IrDA无线数字通信nIrDA是红外数据协会的英文缩写(是红外数据协会的英文缩写(Infrared Data Association)。)。IrDA标准包括三个基标准包括三个基本的规范和协议:本的规范和协议:n红外物理层连接规范红外物理层连接规范(Infrared Physical Layer Link Spec
22、ification,IrPHY)n红外连接访问协议红外连接访问协议(Infrared Link Access Protocol,IrLAP)n红 外 连 接 管 理 协 议红 外 连 接 管 理 协 议 (I n f r a r e d L i n k Management Protocol,IrLMP)。IrDA节点n在在LabVIEW8.2中,中,IrDA 节点位于函数选节点位于函数选板的【数据通信】板的【数据通信】【协议【协议】【IrDA】子】子选板,如图所示选板,如图所示。IrDA通信编程举例例例 利用利用IrDA技术进行双机通信技术进行双机通信服务发起方服务发起方的程序框图的程序框图 服务接收方服务接收方的程序框图的程序框图