1、第7章 通信与远程测控第7章 通信与远程测控虚拟仪器开发时,仅靠单一、孤立的数据采集系统来虚拟出仪器功能是远远不够的,还需要外部仪器系统与虚拟系统协同工作。网络化是虚拟仪器发展的方向之一,虚拟仪器与外部仪器间的数据通信是虚拟仪器技术与网络技术相结合基本要求。本章围绕虚拟仪器系统网络化要求,讲述LabVIEW实现数据通信的基本方法,包括Data Socket技术、TCP/IP通信、串行通信和Web发布等。第7章 通信与远程测控7.1 远程测控系统概述根据远程测控所需数据流量状况及不同的测试需求,远程测试系统远程测试系统可以采用基于基于Client/Server(客户机(客户机/服务器)服务器)和
2、Browser/Server(浏览器(浏览器/服务器)服务器)两种网络模型组建系统。Client/Server模式模式适合数据传送量大的情况,具有效率高、数据可靠完整、兼容性强等特点。Browser/Server模式模式适合数据传送量不大,需要远程模拟仿真的情况。该模式对客户端机器性能的需求很低,不需在客户端上安装相应的客户端软件,只需要浏览器便可登陆服务器对远程测试系统进行监控。第7章 通信与远程测控一般来说,远程测控系统的基本结构如图7-1所示,系统主要包括:(1)测控服务器,作为测量系统发布节点主要完成数据采集、数据发布功能,完成采集数据的数据库服务器存储功能。(2)Web服务器,提供基
3、本的网站功能。客户端通过访问该网站,可以获得数据库服务器中的实时作业信息和历史数据。(3)客户端,利用虚拟仪器应用程序(Client/Server方式)或者通过浏览器监控远程面板(Browser/Server方式)建立与服务器端的网络通信,监测和控制服务器端的作业,接收来自服务器端的作业数据,并进行数据分析处理、数据处理结果的存储与显示、生成数据报表以及数据或波形打印等。第7章 通信与远程测控7.2 DataSocket通信技术DataSocket是是NI公司提供的一项网络测控系统开发技术公司提供的一项网络测控系统开发技术,用来实现单机或网络上多个应用程序之间的数据交换。面向测量和自动化,Da
4、taSocket技术用于共享、发布实时数据,实现实时数据传输。DataSocket技术隐藏了网络数据传输的细节,方便用户实现测控终端和现场仪器之间的数据交换。目前,DataSocket在10M网络上传输数率可达640Kb/s,对于中频以下的数据采集系统可以达到很好的传输效果。DataSocket实际上是一个基于统一资源定位器URL(Uniform Resoure Locator)的单一的、一元化的末端用户API。它是一个独立于协议,独立于语言以及独立于操作系统的API。DataSocket技术中,URL不同的前缀表示了不同的数据类型。第7章 通信与远程测控DataSocket的体系结构包含的体
5、系结构包含DataSocket API和和DataSocket Server两部两部分,是典型的分,是典型的C/S模式模式,如图7-2所示。一般来说DataSocket Server与测控系统硬件相连,采集数据并发送给客户。客户端使用DataSocket API实现数据的接收、处理、显示以及报表生成,也可以简单地通过浏览器程序完成测控系统数据浏览。第7章 通信与远程测控7.2.2 DataSocket组成LabVIEW中的DataSocket API被制作成ActiveX控件和一系列LabVIEW VIs。用户使用DataSocket读写远程计算机上的字符串、整型数、布尔量及数组数据,就象使用
6、本机LabVIEW数据类型一样,只需要设置URL即可在网络上实时传输数据。LabVIEW中DataSocket主要包括几个工具软件主要包括几个工具软件:DataSocket Server Manager、DataSocket Server和DataSocket函数库,以及DSTP传输协议(DataSocket Transfer Protocol)、通用资源定位符URL(Uniform Resource Locator)和文件格式等技术规范。第7章 通信与远程测控1DataSocket Server ManagerData Socket Server Manager是一个独立运行的程序,遵循TC
7、P/IP协议。实质上它是WinSock的高级封装,其主要功能有:设置Data Socket Server连接的客户端程序的最大数目和创建数据项的最大数目;创建用户组和用户;设置用户创建和读写数据项的权限;限制身份不明的客户对服务器进行访问和攻击。注意:注意:Data Socket Server Manager对Data Socket Server 的配置必须在本地计算机上进行,而不能远程配置或通过运行程序来配置。第7章 通信与远程测控DataSocket Server Manager 3组设置项的主要功能:服务器配置(服务器配置(Server Setting):用来设置与服务器性能相关的参数。
8、MaxConnections是指服务器最多可以连接的客户端数,其默认值为50;MaxItems用于设置能够显示的测试参量数。许可组(许可组(Permission Groups):设置与安全有关的参数。Groups(组)是指以一个组名来代表一组IP地址的集合,这对于以组为单位进行设置比较方便。DataSocket Server共有4个内建组:Administrators、DefaultReaders、DefaultWriters和Creators,这4个组分别代表了管理、读、写以及创建数据项目的默认主机设置。预定义的数据项目(预定义的数据项目(Predefined Data Items):定义了
9、一些用户可以直接使用的数据项目,并且可以设置每个数据项目的数据类型、默认值以及访问权限等属性。默认的数据项目共有3个,即SampleNum、SampleString和SampleBool。第7章 通信与远程测控2DataSocket Server与打开DataSocket Server Manager一样,点击Windows开始菜单下的National InstrumentsDataSocket DataSocket Server菜单项后出现DataSocket Server对话框窗口,如图7-4所示。图7-4 DataSocket Server对话框面板第7章 通信与远程测控3DataSoc
10、ket API子模板DataSocket API子模板位于 函数数据通信DataSocket,包括用于完成DataSocket通信的5个DataSocket通信节点,如图7-5所示。另外,DataSocket变体转换节点用于DataSocket特有的Variant(变体)变量和其他所有数据类型变量之间的转换,它位于 簇/变体变体 子模板内。图7-5 DataSocket API子模板第7章 通信与远程测控4DataSocket API函数(1)打开DataSocke函数如图7-6,打开DataSocke函数的作用是打开一个URT连接。“URL”端口设置连接的网络用户地址。“模式”设置网络连接的
11、模式,共有读数据、写数据、读/写数据、读缓冲器、读/写缓冲器5种模式。“连接ID”是唯一识别此Datasocket连接的标志。图7-6 主要DataSocket 函数连线端口第7章 通信与远程测控7.2.3 Data Socket 应用实例在LabVIEW中运用DataSocket技术实现网络通信有两种途径:利用Data Socket VI编程;前面板控件直接连接。另外,使用DataSocket通信时,服务器端和客户端的计算机上必须都运行DataSocket Server。第7章 通信与远程测控【例7-1】服务器产生一个正弦信号。为增加通信效果的视觉感受,动态改变信号相位使其在波形图中缓慢移动
12、。数据发布到URL:dstp:/kuirs/sin。客户端从该URL中读出数据并显示在波形图中。程序运行时,客户机波形会跟随服务器同步缓慢移动。服务器和客户机的程序框图和运行结果如图7-7所示。客户机程序是通过“DataSocket选择URL”函数而获取连接URL的,程序运行时该函数会弹出如图7-8所示对话框。对话框中显示本机及网络上所有的DataSocket Server所能提供的数据连接应用。本机或网络服务器中所发布的所有数据连接应用都将出现在此对话框中,用户按需要选择。第7章 通信与远程测控【例7-2】利用上例,在服务器端增加一个DataSocket三角波数据发布,发布位置分别为:dst
13、p:/192.168.2.12/trIIIi和dstp:/192.168.2.12/myvi。第7章 通信与远程测控LabVIEW2014中所有的控件都有数据数据绑定属性,在控件属性对话框数据绑定选项卡中对数据绑定连接进行设置如图7-10,设置控件绑定连接为DataSocket,访问类型可设置为只读、只写和读/写,最后通过浏览下拉菜单选择某个dstp服务器。设置与应用数据绑定连接后,LabVIEW程序(服务器程序与客户机程序)不再需要读取DataSocket、写入DataSocket这两个函数节点即可实现DataSocket通信。如图7-10,将服务器、客户机的波形图的绑定连接属性都设置连接到
14、dstp:/localhost/sin,服务器为只写、客户机为只读。第7章 通信与远程测控按照图7-9设定服务器、客户机程序框图的波形图控件的数据绑定连接,图7-10实现无需Datasocke读写函数的DataSocket通信。图7-11 基于数据绑定连接的DataSocket通信(左:服务器;右:客户机)第7章 通信与远程测控【例7-3】在图7-9和图7-10程序框图的基础上,利用数据绑定方法在服务器程序上增加一个波形图,并将其绑定到dstp:/localhost/tri。客户机也增加一个波形图控件,并设定相同的绑定类型,实现2个DataSocket数据发布和接收。注意注意,控件设置好数据绑
15、定连接后,在其右上角出现一个连接标志。程序运行时。该标志显示连接的正确性。第7章 通信与远程测控7.3 网络通信传输控制协议传输控制协议/互联网络协议,即互联网络协议,即TCP/IP(Transmission Control Protocol/Internet Protocol),是Internet最基本的协议,依赖TCP/IP协议组来管理Internet数据通信。TCP/IP是一个通信协议族,是由美国国防部高级研究计划署(DARPA)开发的,TCP/IP从诞生以来已成为通用的通讯标准被广泛应用于大量的计算机系统。尽管Labview提供了高效、易用的网络开发工具,但也提供了TCP、IP、UDP
16、、ActiveX等功能模块板进行网络连接和进程通信,编程时摆脱了传统语言中烦琐的底层命令函数,只需从函数选板中选用有关的函数图标连线而成。TCP/IP协议组协议组可被LabVIEW直接应用的主要有两个传输层协议,TCP协协议和议和UDP协议协议,LabVIEW提供了与这两个协议相应的功能函数。IP是网络层协议,实现不可靠无连接的数据包服务。TCP和UDP都是建立在IP协议基础上的传输层协议。UDP协议实现不可靠无连接的数据包服务,TCP实现可靠连接的数据包服务。UDP协议较为简单,但可靠性稍差。因而多数情况下使用TCP协议。第7章 通信与远程测控7.3.1 TCP传输控制协议TCP(Trans
17、mission Control Protocol)是专门用于在不可靠的Internet上提供可靠的、端到端的字节流通信的协议。TCP/IP协议中的IP主要负责在计算机之间搬运数据包,实现路由功能。TCP主要负责传输数据的正确性。TCP/IP通常采用简化四层模型通常采用简化四层模型,分别为:网络接口层、网间层、传输层、应用层。它由控制同一物理网络上的不同机器间数据传送的底层协议组成,具体功能如下:(1)网络接口层:提供TCP/IP协议的数据结构和实际物理硬件之间的接口;(2)网间层:用来提供网络诊断信息;(3)传输层:提供有两种端到端的通信服务,一是能提供可靠的数据流运输服务的TCP协议,二是提
18、供不可靠的用户数据报服务的UDP服务;(4)应用层:一个定义清晰的会话过程,通常包括的协议有HTTP、FTP、Telnet等。第7章 通信与远程测控LabVIEW用于TCP编程的VI函数位于 函数数据通信协议TCP 子选板,如图7-12所示,图中各TCP编程函数具体含义如表7-1。第7章 通信与远程测控TCP选板中的TCP侦听VI函数用来创建一个TCP收听者,等待指定端口的TCP网络连接。它主要的参数包括:(1)端口(port):要侦听连接的端口号;(2)超时(timeout,ms):指定等待连接的时间,如未在指定时间内建立连接返回错误。默认值为-1,表示无限等待。(3)连接ID(connec
19、tion ID):是唯一标识TCP连接的网络连接引用句柄。该连接句柄用于在以后的VI调用中引用连接。(4)远程地址(remote address):是与TCP连接关联的远程机器的地址。该地址使用IP句点符号格式。(5)出错信息输出(error out):包含错误信息。该输出将提供标准错误输出功能。TCP侦听函数使用需要注意:开始侦听某端口后,不能再使用另一个TCP侦听函数侦听该端口。第7章 通信与远程测控TCP通信的过程通信的过程如下:首先TCP通信的两端分别是服务器和客户机。服务器端先指定某个端口号(PORT)并对其进行监听,客户机向服务器被侦听的端口发出连接请求,服务器接受请求后便建立客户
20、机与服务器的连接,然后利用该连接进行通信(双向)。通信完毕后,通信两端通过“关闭TCP连接”函数关闭连接。注意:注意:TCP通信程序运行时,需要在服务器端程序中指定通信端口的端口号,客户机也要指定相同的端口号,这样才能与服务器正确通信。端口号可由用户任意指定,注意避免与常用Internet服务端口号相同。第7章 通信与远程测控7.3.2 TCP应用实例在服务器端程序服务器端程序中,首先指定网络端口,本例为2050,并由TCP Listen节点建立TCP听者、等待连接,产生的正弦信号通过TCP Write节点发送。客户端程序客户端程序,使用TCP Read节点读出由服务器传来的正弦信号,在前面板
21、指定网络通信端口2050。端口值由用户任意指定,但是服务器和客户端的端口必须保持一致。【例7-4】本程序包括两部分:服务器端程序和客户端程序第7章 通信与远程测控例7-4程序中需要注意的是:TCP编程中采用“TCP侦听”或“等待TCP侦听器”建立连接后,若在客户端关闭连接会出现服务器也关闭的情况。这主要是客户端关闭连接后并没有通知服务器端也关闭TCP连接,仅仅是客户端单方面关闭了连接。如此会出现“读取TCP数据”或“写入TCP数据”错误,导致轮询循环出现错误而退出。因此,TCP侦听虽然直接取代了创建TCP侦听器与等待TCP侦听器,但是其本身并没有实现关闭已用端口的功能,会造成系统错误。第7章
22、通信与远程测控【例7-5】点对点的TCP通信,实现服务器与客户机双向数据通信,并解决例7-4中的系统错误问题。服务器程序的发送任务与例7-3基本一致。另外,服务器增加一个接收循环用来接收客户机发送的2个字节的命令号。按照命令号相应地修改波形相位输入。客户机也有两个循环,分别用来接收波形数据,发送2字节的命令号。服务器和客户机程序还统计收发数据的字节数。收发双方的程序框图和前面板如图7-15和图7-16所示。第7章 通信与远程测控程序最后将错误合并,输入到错误过滤函数过滤掉正常关闭导致的错误。第7章 通信与远程测控第7章 通信与远程测控错误过滤子VI用法如图7-17左图,用4个枚举类型将常见错误
23、输入,判断并返回错误类型。错误过滤子VI实现过程如图7-17右图。第7章 通信与远程测控TCP协议除了可以进行点对点的通信外,实际应用中更多是需要点对多点的通信方式,即一个服务器程序为多个客户机服务。实现点对多点TCP通信时,服务器需要增加一个循环不断地侦听连接,一旦有客户机请求连接,则与该客户机建立连接,并将连接放入队列。主循环从队列中逐个析出连接请求,按照例7-4的程序结构完成数据读写。本质上说,点对多点通信就是分时的点对点通信,不是真正的广播通信,真正的广播通信需要使用UDP协议。为了不会漏掉任何一个客户机的连接请求,对于连接的管理采用队列方式。第7章 通信与远程测控7.3.3 UDPU
24、DP协议(User Datagram Protocol),即用户数据报协议,是ISO参考模型中一种无连接的传输层协议,提供面向操作的简单但不可靠信息传送服务。UDP协议的特性主要有以下几点:(1)UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅受应用程序生成数据的速度、计算机的能力和传输带宽的限制。在接收端UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。(2)由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相
25、同的消息。(3)UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。(4)吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。第7章 通信与远程测控LabVIEW用于TCP编程的VI函数位于 函数数据通信协议UDP 子选板,如图7-18所示,重要包括以下几个函数:(1)打开UDP:在指定端口上打开一个UDP Sock(2)读取UDP数据:从打开的UDP Socket中读出数据。(3)写入UDP 数据:将数据写入远程UDP Socket。(4)关闭UDP:关闭UDP Socket(5)打开UDP多个UDP通信不需要建立连接
26、,也不需要进行端口侦听,所以LabVIEW中使用UDP节点和VI实现UDP协议通信比TCP节点更为简单。图7-18 UDP编程VI函数面板第7章 通信与远程测控下面是一个UDP数据收发的实例,如图7-19。图7-19 UDP通信数据收发程序(上图:服务器,下图客户机)第7章 通信与远程测控7.3.4 UDP与TCP区别TCP提供IP环境下的数据可靠传输,即一台计算机发出的字节流会无差错的发往网络上的其他计算机,而且计算机A接收数据包的时候,也会向计算机B回发数据包,这也会产生部分通信量,有效流控,全双工操作,多路复用服务,是面向连接,端到端的传输;TCP面向连接面向连接,正式通信前必须要与对方
27、建立连接。事先为所发送的数据开辟出连接好的通道,然后再进行数据发送。TCP用于传输数据量大用于传输数据量大,可靠性要求高的应用。UDP面向非连接的面向非连接的,正式通信前不必与对方建立连接,不管对方状态就直接发送。不能提供可靠性、流控、差错恢复功能。UDP用于一次只传送少量数据,用于一次只传送少量数据,可靠性要求低、传输经济等应用。TCP面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。UDP面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快。第7章 通信与远程测控7.4 串口通信串口通信1串口通信原理串
28、口通信是一种通用的计算机通信的协议,也是仪器仪表设备常用的通信协议之一。串口通信比较简单,按位(bit)发送和接收字节。对于两个进行通行的端口,以下参数必须匹配:(1)波特率:串口通信中每秒能够发送的位数(bits/second);(2)数据位:衡量通信中实际数据位的参数,(3)奇偶检验位:一种简单的检错方式。有四种检错方式:偶、奇、高和低。(4)停止位:用于表示单个包的最后一位。7.4.1 串口通信串口通信第7章 通信与远程测控2串口通信标准RS-232是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器、仪表。用于驱动和连线的改
29、进,实际应用中RS-232的传输长度或者速度常常超过标准的值。RS-232只限于PC串口和设备间点对点的通信。RS485是一种标准的物理接口,对应物理层,没有统一的通信协议。各家公司都有自己自定义的通信协议,但目前应用非常广泛的是Modbus协议,大部分大公司的RS485产品都支持此协议,或RTU或TCP模式。RS232/RS485定义了通信的物理层,即只规定了通信的电气规范。RS232实现点对点通信,RS485采用主从模式可以方便组网。第7章 通信与远程测控3串口通信的应用类型串口应用类型大致分为二种:一一是仪器控制类型是仪器控制类型,其流程是上位机(PC)发送一个指令,下位机作出响应并返回
30、数据给上位机,上位机再读取出来完成一次通信,即一问一答形式;二二是被动接收类型是被动接收类型,下位机会一直发送数据,但数据发送的间隔或周期未知,上位机被动地接收。这二种类型的串口通信在处理上会不太一样。被动接收类型中,由于上位机是被动接收,无法确定下位机有无数据传输、无法确定数据的起始位置,容易造成数据接收错误。因此,被动接收类型的通信,一般采用数据帧的方式进行通信。数据帧的形式可根据具体任务要求设计,一般至少由三部分数据数据帧的形式可根据具体任务要求设计,一般至少由三部分数据组成:帧头、数据、帧尾(如果数据长度固定,帧尾可以省掉)。组成:帧头、数据、帧尾(如果数据长度固定,帧尾可以省掉)。帧
31、头是通知上位机,之后的数据是有用数据,相当于约定好的暗号。帧头至少要用二个以上字节,以免有用数据中有与帧头一样的字符,导致数据解析出错。帧尾的作用与帧头差不多。第7章 通信与远程测控实际上,一般的数据帧其帧头、帧尾位置上还会加上一些校验字一般的数据帧其帧头、帧尾位置上还会加上一些校验字节、时间信息、帧计数器等冗余信息。节、时间信息、帧计数器等冗余信息。校验字节可以检查数据传输过程中是否出错、计数器可以检查收发数据的量。另外,在串口通信中,收发双方可以利用一些特殊帧实现自有的握手协议,也可以实现如Modbus协议的标准协议。总之,合理设计的帧头、帧尾可以增加串口通信的稳定性、容错性和交互性。合理
32、设计的握手协议可以方便地对信息传输进行控制。第7章 通信与远程测控图7-20给出一种被动接收类型LabVIEW串口程序基本流程。初始化串口后,可以向下位机发送命令,通知其上位机就绪。在While循环中接收和处理数据,满足条件退出循环后再次通知下位机。图7-20 被动接收类型串口程序基本流程第7章 通信与远程测控7.4.2 LabVIEW串口编程LabVIEW通过VISA(Virtual Instrument Software Architecture)与串行接口仪器通信。VISA是应用于仪器编是应用于仪器编程的标准程的标准I/O 的的API(Application Programming In
33、terface),它身并不具有仪器编程能力,而是为用户提供了一套),它身并不具有仪器编程能力,而是为用户提供了一套独立的可方便调用的标准独立的可方便调用的标准I/O底层函数。底层函数。无论对于GPIB、串口还是其他接口,用户只要调用这些标准函数,则VISA就会根据实际接口类型自动调取相应的接口驱动程序例程,方便实现上层应用程序与接口总线仪器的通信。第7章 通信与远程测控在LabVIEW里使用VISA,必须安装NI-VISA程序包,安装后LabVIEW有关串口程序设计的函数位于 函数 仪器I/O 串口 选板上,如图7-21所示,其中主要函数和功能如表7-2所示。图7-21 串口编程函数选板第7章
34、 通信与远程测控1VISA配置串口函数VISA配置串口函数的接线端口如图7-22,该函数将“VISA资源名称”指定的串口按特定值进行初始化设置。VISA配置串口函数需要设置波特率、数据位、停止位、奇偶校验位、流控制、超时处理、终止符和终止符使能等参数,将VISA资源名称指定的串口按特定设置初始化。图7-22 VISA串口配置函数接线端口与配置参数第7章 通信与远程测控2VISA读取函数VISA读取函数接线端口如图7-23,函数从VISA资源名称所指定的串口中读取指定字节的数据,并将数据返回至读取缓冲区。有时不知道串口缓存区有多少字节的数据,以防字节总数设置错误,这时字节总数可以用属性节点获取,
35、即把属性节点输出端子接入“VISA读取”节点的输入端子“字节总数”,见图7-25。图7-23 VISA读取函数接线端口图7-24 VISA写入串口接线端口第7章 通信与远程测控3VISA写入函数将“写入缓冲区”端口数据写入VISA资源名称指定的串口。注意:VISA通信收发的数据都是字符串(ASCII)。若收发字符串是“1、2、3、4”,则串口缓存接收与发送的数据是“1、2、3、4”ASCII码的16进制形式,即31、32、33、34。第7章 通信与远程测控4串口缓存区字节数属性节点右击VISA函数的VISA资源名称端口,通过依次弹出的各级快捷菜单创建该属性节点,如图7-25所示。创建后属性节点
36、及其与VISA读取函数的连接,如图所示。该属性节点返回串口缓冲区内的字节数,以便读取。图7-25 串口缓存区字节数属性节点及添加快捷菜单第7章 通信与远程测控7.4.3 串口通信实例本节通过几个实例,讲解LabVIEW串口通信VI程序开发与实验的过程和方法。为了方便测试串口通信程序,需要增加必要的软件工具,如串口调试类工具、虚拟串口工具。串口调试助手类软件:主要用于串口调试,支持常用的300-115200bps波特率,能设置校验、数据位和停止位,能以ASCII码或十六进制接收或发送任何数据或字符(包括中文),可以任意设定自动发送周期,并能将接收数据保存成文本文件,能发送任意大小的文本文件。VI
37、程序开发过程中可以使用此类工具模仿(替代)下位机的功能和行为。第7章 通信与远程测控虚拟串口VSPD工具类软件:在VI串口程序的调试或测试阶段需要一对相连的串口,分别与上位机(LabVIEW VI应用程序)、下位机(仪器仪表或其他串口设备)对应。但是,大多数PC机一般没有物理串口或仅有一个物理串口,因此需要使用VSPD工具添加多个虚拟串口。虚拟串口VSPD工具可在PC上虚拟出多对虚拟连接的串口。虚拟串口的连接不是物理上的真正连接,一般用于VI程序软件设计与调试阶段。VI实际性能的测试还需要上位机和下位机物理上连接。图7-26 虚拟串口VSPD工具界面第7章 通信与远程测控【例7-6】写串口程序
38、如图7-26,COM2与COM3已经通过VSPD虚拟串口连接。VI程序选择串口COM2,参数默认。串口调试助手打开串口COM3,接收VI的串口发送,运行结果如图7-27。图7-27 例7-6程序框图及串口调试工具接收界面第7章 通信与远程测控【例7-7】读取串口全部数据图7-28 串口接收程序框图及前面板 例7-7程序按照图7-20给出的被动接收方式设计。程序运行期间“连接数据”文本框保存全部串口的数据,实际使用过程中就是对该文本框内容进行截取、处理,如例7-8。第7章 通信与远程测控【例7-8】设计完成一次简单的串口握手过程。上位机运行后发送BG标志,通知下位机开始发送数据(数据发送周期不定
39、),数据格式形如“*#13.1&”,*#为帧头、&为帧尾。正确接收100个数据后停止接收,然后发送EN标志通知下位机停止发送。如图7-29所示,串口助手连续发送数据长度不同的帧。利用例7-7中串口接收程序框架,读取全部字符串,然后判断、截取和转换成数值。正式接收数据前后发送起、停标志。第7章 通信与远程测控图7-29 简单串口握手过程的程序框图、前面板和串口数据收发结果第7章 通信与远程测控【例7-9】使用队列实现串口数据接收和存储。程序使用队列实现典型的生产者和消费者程序模式。生产者循环使用“元素入队”函数向队列添加数据。消费者循环使用“元素出队”函数从队列中移出数据。消费者循环一直到队列中
40、的数据可用时才开始执行。VI程序使用完队列之后,使用“释放队列引用函数”,队列释放时,“元素出队”函数将会产生一个错误,利用此错误信息可以有效地停止消费者循环,因此只需要在生产者循环中放置一个按钮即可正确停止程序的两个循环。注意观察程序框图中两个循环的停止控制方式。利用生产者/消费者模式修改例7-9程序,可以不再需要使用串口缓存区字节数属性节点,也不需要使用移位寄存器拼接字符串。用户可以更加专注于消费流程的设计而无需顾及生产者的情况。第7章 通信与远程测控图7-30生产者循环中,串口每次读取7字节长度数据帧并压入队列。帧格式为“*#13.1&”,队列元素数据类型为字符串。消费者循环中,从队列中
41、取出数据,截取到有用数据后分别送波形图表和二进制文件。使用“延时等待”函数控制消费者循环的执行速度,元素出队的速度。程序运行时,拖动滑杆,波形图表中曲线刷新速度相应改变。第7章 通信与远程测控图7-30 队列管理串口数据的读取程序框图和前面板第7章 通信与远程测控7.5 Web发布 使用LabVIEW 的Web服务器可以在网络上发布LabVIEW 程序前面板的图像或HTML(Hypertext Markup Language)文件供本地或远程计算机浏览。还可以在网络上打开其它计算机内存中的LabVIEW 程序前面板。使用访问HTML文件的方法和前面板链接的方法都可以安全、快捷地进行程序的远程控
42、制。第7章 通信与远程测控LabVIEW可通过Web发布工具发布VI。点击菜单 工具Web发布工具,打开Web 发布工具的对话框如图7-31所示。该对话框类似于向导程序,指导用户创建HTML文件和嵌入式VI前面板图像。图7-31 Web发布工具对话框第7章 通信与远程测控(1)在VI名称中选择要发布的VI。若该VI已经打开,则可以直接选择该VI。(2)查看模式中设置客户端访问VI前面板的不同效果,有以下选项:嵌入-浏览器可查看与和控制前面板。注意:VI必须在服务器计算机的内存中,也就是必须在本机上打开VI,客户端才能查看和控制前面板。快照-浏览器可查看前面板的静态图像,但不能控制前面板。显示器
43、-浏览器中查看前面板连续更新动画快照,但不能控制前面板。(3)点击预览可在本地浏览器上浏览VI的Web页。注意:预览功能必需打开LabVIEW的Web服务器,并启动本机Web服务器。第7章 通信与远程测控在选择HTML输出中,可以对客户端访问的Web页内容作进一步的设置,包括:文档标题-设置作为Web页标题的文本。页眉-设置在前面板图像上方显示的文本。页脚-设置在前面板图像下方显示的文本。最后对Web页的保存进行设置,包括:Web页的保存目录-创建HTML文件的文件夹,通常为Windows的LabVIEWwww目录。文件名HTML文件的文件名。URL文档的网络地址。该URL可供网络浏览器访问。
44、第7章 通信与远程测控点击连接后,就可以在本地默认浏览器上访问该Web页。也可以将该URL复制,在客户端的浏览器上访问该Web页。查看保存的Web页,还要按规定的格式在Web 浏览器中输入URL,例如http:/192.168.0.1:8000/qxnh.html表示发布网页计算机的IP地址是“192.168.0.1”,HTML文件保存为“qxnh.htm”。如果发布网页的程序在计算机内存中并被设置为可见,则Web页中包括程序的前面板图像和文本说明;否则将只有文本内容。一个程序可以发布多个不同的网页,同一个网页各个机器可以分别浏览。图7-33 Web发布界面第7章 通信与远程测控7.6 习题7-1 LabVIEW测控系统的网络模式有哪些?7-2 LabVIEW实现通信的方式有哪些?7-3 编写VI 实现DataSocket通信。7-4 利用数据绑定技术重新实现7-3题的DataSocket通信。7-5 TCP和UDP的区别,哪个更适合网络测控系统使用?7-6 编程实现TCP/IP通信7-7 什么是串口通信,其主要参数有哪些?7-8 编程实现与下位机的串口通信。要求:正确设计串口通信数据帧格式,将数据用波形图表和表格显示。