




已阅读5页,还剩104页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,第4章网络化虚拟仪器,4.1网络化虚拟仪器基础4.2网络化虚拟仪器的开发平台4.3TCP和UDP通信4.4DataSocket技术4.5基于Web的远程发布4.6远程仪器访问技术4.7两种组建网络化虚拟仪器系统的模式和应用,.,4.1网络化虚拟仪器基础4.1.1网络化虚拟仪器的概念网络化虚拟仪器是指将计算机、外围设备、被测试结点以及数据等软件资源纳入网络进行资源共享,共同完成测试任务,实现了对现场基于Internet的异地或远程测试、控制、数据获取、故障诊断和现场监视功能。网络化虚拟仪器把PC仪器系统的三大功能分别使用独立的基本硬件模块实现,并以网线相连接。通过这种有机的组合,测控网络的功能远远大于系统中各单独个体的功能总和。,.,4.1.2网络化虚拟仪器的硬件结构利用传统的网络接口卡(NetworkInterfaceCard,NIC)是最简便的虚拟仪器网络化方法,通过指定IP地址和端口,任何一台带有NIC的计算机都能方便地与网络上的其他计算机进行信息交换。在测控领域,除了传统的NIC外,还有GPIB-NET、RS232-NET等转换卡,能将本身不具备联网能力的设备仪器连接到网络上,可以得到如图所示的网络化虚拟仪器结构。,.,4.1.3网络化虚拟仪器的软件结构图为网络化虚拟仪器的软件结构。主要由系统管理软件、应用程序、仪器驱动软件和接口软件等4部分组成。其重点是网络连接部分,即实现“网络就是仪器”。,.,4.2网络化虚拟仪器的开发平台4.2.1软件开发技术概述网络化虚拟仪器的开发可以采用多种软件技术,比如:网络仪器的开发软件可以采用通用的编程语言,也可以采用专门的虚拟仪器软件开发工具。这些开发软件按照编程方式可以分为两种:文本式编程语言如VisualC、Visualbasic、LabWindows/CVI等;图形化编程语言如LabVIEW、HPVEE等。最流行的是LabVIEW和LabWindows/CVI,它们都是美国NI公司推出的专门面向计算机测控领域虚拟仪器的软件开发平台,而且都有强大的网络开发功能。,.,4.2.2图形化编程语言LabVIEW简介LabVIEW(LaboratoryVirtualinstrumentEngineering,实验室虚拟仪器工作平台)是美国NI(NationalInstrument)公司推出的一种基于G语言(GraphicsLanguage,图形化编程语言)的虚拟仪器软件开发工具,是目前国际上应用最广泛的虚拟仪器开发环境之一,主要应用于仪器控制、数据采集、数据分析、数据显示等领域,并适用于Windows、Macintosh、UNIX等多种操作系统平台。LabVIEW广泛地被工业界、学术界和研究实验室所接受,它集成了符合GPIB、VXI、RS-232和RS-485协议的硬件和数据采集卡通信的全部功能,内置了便于应用TCP/IP、ActiveX等软件标准的库函数,特别适用于虚拟仪器的设计和开发。另外,LabVIEW还提供了TCP、UDP通信技术、DataSocket技术、基于Web的远程发布、RemoteDeviceAccess等多种网络通信技术,这为基于LabVIEW的网络化虚拟仪器开发提供了十分便利的条件和基础。,.,1.LabVIEW启动从开始菜单中运行“NationalInstrumentLabVIEW7.1”,在计算机屏幕上将出现如图所示的欢迎窗口。,.,单击Continue按钮之后进入如图所示的LabVIEW对话框,在这个对话框中可以直接访问某些LabVIEW资源和工具,而不需要打开程序窗口。,.,在New对话框中单击New按钮,将弹出如图所示的New对话框。,.,单击图中LabVIEW对话框的Open按钮,将弹出标准的Windows打开文件对话框,在这里可以打开各种LabVIEW文件。,.,2.LabVIEW程序的基本构成与术语采用LabVIEW编程的应用程序,通常被称为虚拟仪器程序(VirtualInstruments),简称虚拟仪器(VIs)。它主要由前面板(FrontPanel)、框图程序(BlockDiagram)以及图标和连结器窗格(IconandConnector)三部分组成。其中前面板的外观及操作功能与真实的(传统的)仪器(如示波器、万用表)的面板类似,而框图程序则是使用功能函数对通过用户界面输入的数据或其他源数据进行处理,并将信息在显示对象上显示或将信息保存到文件或其他计算机。,.,(1)前面板(FrontPanel)前面板是图形用户界面,也就是VI的虚拟仪器面板。该界面上有交互式的输入和输出,显示两类对象,分别称为控制器(Control)和指示器(indicator)。Control包括开关、旋钮、按钮和其他输入设备;indicator包括图形(Graph和Chart)、LED和其他显示输出对象。图所示是一个随机信号发生和显示的简单VI的前面板,前面板由一个显示对象波形图和一个控制对象“停止”按钮组成。,.,(2)框图程序(BlockDiagram)框图程序提供VI的图形化源程序。在框图程序中对VI编程,以控制和操纵定义在前面板上的输入和输出功能。随机信号发生器的框图程序如图所示。,框图程序由节点和数据连线组成。节点是VI程序中类似于文本编程语言程序中的语句、函数或者子程序的基本组成元素。节点之间由数据连线按照一定的逻辑关系进行连接,以定义框图程序内的数据流程。,.,LabVIEW的节点类型分为4类,如表所示。,.,(3)图标和连结端口(IconandConnectorPane)VI具有层次化和结构化的特征。用户可以把一个VI作为子程序,这里称为子VI(subVI),被其他VI调用。图标与连接端口是框图程序中VI的识别符,当被其他VI调用时,图标代表子VI中的所有框图程序。而连接端口表示子VI与调用它的VI之间进行数据交换的输入输出关系口,相当于图形化的参数,通常连接端口是隐藏在图标中。在图标的右键弹出菜单中选择VisualItemTerminals,可以将图标切换到连接端口状态。,.,(4)专用术语由于LabVIEW是一门面向测试测量领域的图形化语言,在LabVIEW中引入了大量的术语。一些常用术语如表所示。,.,3.LabVIEW的编程环境LabVIEW是一个多功能的集成编程环境。它主要由前面板窗口和框图程序窗口组成。其中,前面板窗口用于编辑和显示前面板对象,如图所示。,.,框图程序窗口用于编辑和显示框图程序(程序代码),如图所示。,.,(1)LabVIEW菜单LabVIEW菜单包括文件(File)、编辑(Edit)、操作(Operation)、工具(Tools)、浏览(Browse)、窗口(Windows)、帮助(Help)等七大项。(2)LabVIEW工具栏LabVIEW前面板窗口和框图程序窗口都有各自的工具栏,工具栏包括用来控制VI的命令按扭和状态批示器。图是前面板窗口的工具栏,图为框图程序窗口的工具栏,.,工具栏各图标及其功能表如表所示。,.,(3)LabVIEW工具模板在LabVIEW的用户界面上提供了用于VI编程所需的功能强大,直观方便的操作模板,包括工具(Tools)模板、控件(Controls)模板和函数(Functions)模板。1)工具模板图工具模板提供了各种用于创建、修改和调试VI程序的工具,如图所示。工具模板可以在Windows菜单下选择ShowToolsPalette命令来以显示该模板。,.,工具模板中各图标的功能如表所示,.,2)控件模板(ControlPalette)选择前面板窗口Windows菜单的下ShowControlsPalette选项或在前面板窗口空白上单击鼠标右键,可以弹出控制模板(如图所示)。,在Controls中显示的是一些常用的子模板图标,单击右下角的AllControls即可弹出全部的控制子模板(如图)。,.,控制模板包括一些子模板。子模板中包括的对象,其中各图标的功能如表所示。,.,3)功能模板(FunctionPalette)选择框图程序窗口的Windows菜单下的ShowFunctionsPalette选项或在框图程序窗口的空白处点击鼠标右键,可显示出功能模板(如图所示)。,在Functions中显示的是一些常用的子模板图标,单击右下角的AllFunctions即可打开所有的功能子模板(如图)。,.,功能模板常用子模板功能如表所示,.,.,4.LabVIEW程序设计的一般过程一个完整的VI程序由3部分组成:前面板、框图程序和图标/连接口,因此一个VI程序设计主要包括前面板的设计、框图程序的设计以及程序的调试。当前面板和框图程序设计好以后,还需要对程序进行调试,以排除程序执行过程中可能遇到的错误。程序的调试方法主要有:1)找出语法错误2)设置运行程序高亮3)断点与单步运行4)探针,.,(1)前面板的设计绝大多数的控制器和指示器的配置是可以改变的,在控制器或指示器上单击右键,在弹出的快捷菜单中选择相应的选项来改变配置,如图所示。一个VI程序的前面板如图所示。,.,(2)框图程序组成框图程序由节点、端口和连线组成,如图所示。,.,(3)从框图程序窗口创建前面板对象用任意LabVIEW工具,用户都可以用鼠标右键单击任意的labVIEW功能函数或者子程序,然后可以弹出其快捷菜单,如图所示。,.,(4)数据流编程程序的运行是“数据流”驱动的。对一个节点而言,只有当它的输入端口上的数据都有效以后,它才能被执行。当节点程序运行完毕后,它把结果数据送给所有的输出端口。如图所示,.,下面简单介绍这个框图程序的创建过程:1)选择框图程序窗口。在功能模板中选择Numeric下的Multiply(乘法)函数,放入框图程序窗口。2)在此函数图标的左端输入端口上单击右键,从弹出的对话框中选择CreatControl,创建与它相连的一个控制器。3)重复上面的步骤,创建第二个控制器同乘法函数的连接。4)在功能模板中选择Numeric下的Subtract(减法)函数,放入框图程序窗口。5)在此函数左端相应输入端口上单击右键,从弹出的对话框中选择CreatConstant,创建一个常数。6)在此减法(Subtract)函数右端输出端口上单击右键,从弹出的对话框中选择CreatIndicator,创建指示器。7)用连线工具连线。8)选择工具模板中的标签(EditText)工具修改标签并添入数字。9)创建图标。10)从File菜单中选择Save命令来保存。起名为“例4.1”。,.,创建图标创建方法在前面板窗口或框图程序窗口的右上角的图标框中单击右键,从弹出的快捷菜单中EditIcon(或双击此图标框),打开一个图标编辑器,如图所示。,.,双击选择工具,选中默认的图标,按Delete键,清除所选图标图案。用画图工具画出所需的图标。注意:在用鼠标画线时按住Shift键,则可以画出水平或垂直方向的直线。用文本工具写文字,双击文本工具可改变字体及字号。当图标创建完成后,单击【OK】按钮以关闭图标编辑。生成的图标将显示在前面板窗口的右上角。,.,(5)创建子程序在LabVIEW中,每个程序都可以将其创建成子程序,以便其他程序调用。创建过程如下(在这里将上面VI程序“例4.1”创建成子):1)打开程序“例4.1”。2)创建接线端口。接线端口是程序数据的输入/输出端口,创建过程如下:右键单击前面板中右上角的图标,从弹出的快捷菜单中选择ShowConnector选项。此时,前面板窗口右上角的图标由接线端口取代,每个小矩形框代表一个连线的端口,这些端口用来将数据输入到VI程序中或将程序的数据输出。LabVIEW将会根据控制器和指示器的数量选择一种接线端口模式。,.,把接线端口分配给相应的控制器和指示器。使用连线工具,在左边的接线端口框内单击鼠标,则端口将会变黑。再单击控制器,一个闪烁的虚线框将包围住该控制器。3)保存此程序,以后就可以对其调用。4)打开一个新的VI,在框图程序中选择FunctionsAllfunctionsSelectaVI再选择上面保存的VI程序“例4.1”。此时,此VI程序将以图标形式出现。用连线工具可以看到它的连线端口,这样可以创建相应的控制器和指示器,如图所示。,.,.,(6)VI的运行LabVIEW提供了两种VI的运行方式:单次运行方式和连续运行方式。1)单次运行VI在前面板窗口或框图程序窗口的工具栏中选择运行(Run)按钮,可以单次运行VI。还可以使用操作菜单下的Run菜单项单次运行VI。2)连续运行VI在工具栏中选择连续运行(RunContinuously)按钮,可以连续运行VI,即一次VI运行结束后,继续重新运行VI。3)停止运行VI在工具栏中选择停止运行(AbortExecution)按钮,可以强行终止VI的运行。4)暂停运行VI在工具栏中选择暂停运行(Pause)按钮,可以暂停VI的运行,再次单击该按钮可恢复VI的运行。,.,4.3TCP和UDP通信4.3.1TCP节点与TCP通信技术及应用1TCP节点在LabVIEW7.1中,可以采用TCP节点来实现基于TCP协议的LAN通信。节点位于Functions模板AllFunctionsConmmunication子模板TCP子模板中,如图所示。,.,TCP子模板上有9个图标,这些图标可划分为三部分:Connection:用于建立客户机和服务器之间的通信连接;Transmission:用于在客户机和服务器之间传输数据;Conversion:用于计算机的IP地址和计算机名之间相互转换。TCP子模板中各图标(节点)的参数定义、用法及功能如表所示。,.,.,2.TCP通信应用实例4.1:利用TCP协议发送和接收数据本例包括TCPWriter(发送).vi和TCPReader(接收).vi两个程序,以实现采用TCP协议完成数据的传输。服务器(发送端)的前面板及框图程序如图所示。在服务器的框图程序中,利用TCPListener节点建立听者并指定网络端口(Port),用两个TCPWrite节点来发送数据。两个For循环产生的数据之和一方面送WaveformGraph显示,另一方面通过TCPWrite节点发送(数据的产生可由用户根据实际需要编写),第一个TCPWrite节点发送数据长度,第二个TCPWrite节点发送数据。While循环用于数据的连续发送,TCPClose节点则关闭TCP连接。,.,.,客户端(接收端)的前面板及框图程序如图所示。用Open节点按照连接的IP地址(Address)和端口号(Port)建立一个TCP连接。与服务器(发送端)框图程序相对应,客户端框图程序中也采用了两个TCPRead节点读出数据。第一个TCPRead节点读出数据长度,第二个ReadTCP节点读出数据并送WaveformGraph中显示出,以便观察接收的数据与发送数据是否一致。,.,.,4.3.2UDP节点与UDP通信应用1UDP简介用户数据报协议(UDP-UserDatagramProtocol)是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。是一个简单的面向数据报的传输层协议,IETFRFC768是UDP的正式规范。UDP协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序。UDP适用于不需要TCP可靠机制的情形。UDP是传输层协议,服务于很多知名应用层协议,包括网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)、动态主机配置协议(DHCP)、路由信息协议(RIP)和某些影音串流服务等等。,.,协议结构SourcePort16位。源端口是可选字段。当使用时,它表示发送程序的端口,同时它还被认为是没有其它信息的情况下需要被寻址的答复端口。如果不使用,设置值为0。DestinationPort16位。目标端口在特殊因特网目标地址的情况下具有意义。Length16位。该用户数据报的八位长度,包括协议头和数据。长度最小值为8。Checksum16位。IP协议头、UDP协议头和数据位,最后用0填补的信息假协议头总和。如果必要的话,可以由两个八位复合而成。Data包含上层数据信息。,.,UDP协议有如下的特点:1)UDP传送数据前并不与对方建立连接,即UDP是无连接的,在传输数据前,发送方和接收方相互交换信息使双方同步。2)UDP不对收到的数据进行排序,在UDP报文的首部中并没有关于数据顺序的信息(如TCP所采用的序号),而且报文不一定按顺序到达的,所以接收端无从排起。3)UDP对接收到的数据报不发送确认信号,发送端不知道数据是否被正确接收,也不会重发数据。4)UDP传送数据较TCP快速,系统开销也少。5)由于缺乏拥塞控制(congestioncontrol),需要基于网络的机制来减小因失控和高速UDP流量负荷而导致的拥塞崩溃效应。,.,2.UDP节点LabVIEW中的基于UDP协议的网络通信由UDP节点实现。LabVIEW7.1中UDP节点位于Functions模板AllFunctionsConmmunication子模板UDP子模板中,如图所示。,.,UDP子模板有5个图标,各图标的参数定义、用法及功能如表所示。,.,3.UDP通信应用实例4.2利用UDP节点实现通信本例包括UDPWriter(发送).vi和UDPReader(接收).vi两个程序,以说明如何使用UDP协议完成数据的传输。UDPWriter(发送).vi的前面板及框图程序如图所示;,.,.,4.4DataSocket技术4.4.1DataSocket技术简介DataSocket是NI公司推出的一种面向测量和自动化工程的网上实时数据交换的编程技术,可用于一个计算机内或网络中多个应用程序之间的数据交换,用于共享和发布实时数据。DataSocket技术提供一种基于TCP/IP协议的网络编程技术,它支持本地文件I/O操作、FTP和HTTP文件传输、实时数据共享并为低层通讯协议提供了一致的API供编程人员使用。DataSocket技术是一种简单易用的网络数据通信技术,它封装了TCP/IP编程细节(如选择端口号、定义协议、创建连接、字节流处理、错误处理等),即具体的底层TCP/IP编程由DataSocket提供的VI完成,使测控工程师不用了解底层的网络编程技术,就可以方便的搭建网络化虚拟仪器测控系统。,.,1.DataSocket的组成DataSocket的体系结构如图所示。,DataSocket具备以下三个工具:DataSocketActiveX控件:开发者可以利用它提供的控件在诸如VB、VC等ActiveX容器中开发共享数据应用程序。DataSocket服务器:利用dstp协议在应用程序间交换数据。DataSocket服务器管理程序:它是一个配置和管理工具,负责确定DataSocket服务的最大连接数、实现设置访问控制等网络管理功能。,.,2DataSocket工具DataSocket包括DataSocketServerManager、DataSocketServer和DataSocket函数库3个工具软件以及DSIP协议、通用资源定位符URL和文件格式等技术规范。(1)DataSocketServerManagerDataSocketServerManager是一个独立运行的程序,其功能是进行:服务器设置-ServerSettings(设置可连接的客户程序的最大数目、可创建的数据项的最大数目)、许可组设置-PermissionGroup(允许创建用户组和用户)和预定义数据项设置-PredefinedDataItems(发布和共享数据项的设置)等。在安装好LabVIEW之后,打开“开始程序NationalInstrumentsDataSocket”,出现如图4-35所示选项,单击DataSocketServerManager则进入图3-36所示页面。,.,.,(2)DataSocketServerDataSocketServer也是一个独立运行的程序,它为用户提供一个数据交换的场所。如何运行DataSocketServer?即在安装好LabVIEW之后,打开“开始程序NationalInstrumentsDataSocket”,出现如图4-35所示选项,单击DataSocketServer则进入图4-37所示页面。,主要参数为:ProcessesConnected:显示与DataSocket服务器连接的客户端的实际数目。PacketsReceived:显示接收的数据包的数目。PacketsSent:显示发送的数据包的数目。,.,(3)DataSocket函数库DataSocket函数库用于实现DataSocket通信,DS函数库包含Open、read、write、close等函数。利用DataSocket发布数据需要三个要素:Publisher(发布器)、DataSocketServer和Subscriber(订阅器)。Publisher利用DataSocketAPI将数据写到DataSocketServer中,而Subscriber利用DataSocketAPI从DataSocketServer中读出数据,如图所示。,.,(4)统一资源定位符URLDataSocket用类似于Web中的统一资源定位器(URL)定位数据源,URL不同的前缀表示了不同的数据类型,file表示本地文件,http为超文本传输资源,ftp为文件传输协议,opc表示访问的资源是OPC服务器,dstp(DataSockettransferprotocol-DataSocket传输协议)则说明数据来自DataSocket服务器的实时数据。利用DataSocket进行通信时需要首先指定URL。DataSocket可用的URL共5种:dstp、opc、logos、ftp和file传输协议,其应用格式如表所示,.,4.4.2DataSocket节点DataSocketAPI分为DataSocket通信节点和DataSocket变量转换节点两大类。LabVIEW7.1的DataSocket节点位于Functions模板AllFunctionsConmmunication子模板DataSocket子模板中,如图4-39所示。,.,DataSocketAPI节点包含6个图标,各图标的参数定义、用法及功能如表4-10所示,其中Variant变量转换节点又包含7个子图标。,.,.,4.4.3DataSocket应用使用DataSocket传输数据时,在DataSocketServerManager中配置好服务器之后,还需从“开始程序NationalInstrumentsDataSocket”中运行DataSocketServer,再进入LabVIEW环境,运行所开发的应用程序,即可进行数据的传输。使用DataSocket传输数据有以下几种方式:(1)使用DataSocket特殊属性,实现前面板对象之间传输数据。(2)使用DataSocket节点,实现程序之间的传输数据。(3)DataSocket使用数据缓存方式,实现程序之间的传输数据。,.,实例4.3:使用DataSocket在前面板控件(对象)中间传输数据建立前面板对象链接的方法是:在准备链接的前面板控件(对象)上鼠标右键弹出快捷菜单,选择DataOperationDataSocketConnection选项,如图4-40和图4-42所示。进入DataSocketConnection对话框,在Connectto中输入URL,其URL可采用表4-9中的格式。本例的URL为:dstp:/localhost/SampleNum,其中localhost为本地计算机,SampleNum为DataSocketServerManager中PredefinedDataItems的默认数据项。发送端的ConnectionType选“Publish”,接收端则选“Subscribe”,分别如图3-41和图3-43所示。一旦为前面板控件(对象)设置了DataSocketConnection属性,则在控件的右上角就会出现一个小方框,用于指示该控件的连接状态,称为链接状态指示灯。当链接状态指示灯为灰色时,表示该控件还没有连接到DataSocketServer上,如图4-40和图4-42所示。,.,图4-40DataSocket发送端前面板对象链接菜单选项,图4-41DataSocket发送端前面板对象链接对话框,.,图4-42DataSocket接收端前面板控件链接菜单选项,图4-43DataSocket接收端前面板控件链接对话框,.,两个前面板控件都进行链接设置之后,发布数据的计算机在程序运行前还需打开DataSocketServer。如果链接正常,两个对象所在的程序运行之后,链接状态指示灯为绿色,如图4-44和图4-46所示,而发送端与接收端前面板所对应的框图程序分别如图4-45和4-47所示。,图4-44DataSocket发送端前面板运行界面,.,图4-45DataSocket发送端框图程序,图4-46DataSocket接收端前面板运行界面,.,图4-47DataSocket接收端框图程序,.,实例4.4:使用DataSocket节点在程序中传输数据本例包括DataSocketWriter(发送).vi和DataSocketReader(接收).vi两个程序,用以说明如何使用DataSocket节点完成程序间的传输数据。DataSocketWriter(发送).vi产生一个由50个随机数+常数2组成的数据,用WaveGraph控件在前面板中显示其波形,并利用DataSocketWrite节点将数据发布到URL“dstp:/localhost/SampleNum”指定的位置中。DataSocketReader(接收).vi则利用DataSocketRead节点将数据从URL“dstp:/localhost/SampleNum”指定的位置读出,并送到前面板的WaveGraph控件中显示出。DataSocketWriter(发送).vi和DataSocketReader(接收).vi的前面板运行结果及其对应的框图程序分别如图4-48、图4-49、图4-50、图4-51所示。,.,图4-49使用DataSocket节点发送端框图程序,图4-48使用DataSocket节点的发送端前面板运行界面,.,图4-50使用DataSocket节点的接收端前面板运行界面,图4-51使用DataSocket节点接收端的框图程序,.,实例4.5:DataSocket使用数据缓存方式在程序中传输数据本例包括DataSocketWriter(缓存发送).vi和DataSocketReader(缓存接收).vi两个程序,用以说明DataSocke如何使用数据缓存方式完成程序间的数据传输。使用DataSocket协议传输数据,在默认情况下DataSocketServer只向数据客户发布最新数据,当发送端比接收端运行快时,会发生数据丢失现象。为了降低DataSocketServer丢失的可能性且客户认为数据较为重要的话,可使用数据缓存的方式传输数据。采用缓存方式,需分别进行服务器端和客户端的设置。服务器端的设置在图4-52所示的DataSocketServerManager页面中进行,即先在ServerSetting上的DfltBufferMaxBytes和DfltMaxPackets中设置默认缓存大小,而后在PredefinedDataItems中创建mywave数据项,并设置当前数据项的缓存大小MaxBufferBytes=102400、MaxBufferPackets=25(缓存大小是用户根据实际需要而设置的)。,.,客户端的缓存设置包括两类:指定客户端缓存大小和指定监测缓存大小。其设置步骤如下:在DataSocketReader(缓存接收).vi的框图程序内创建一个DataSocketOpenVI并在其mode端单击鼠标右键创建一个Constant,接着鼠标左键单击下拉选项选择BufferedRead。在框图程序中放入一个PropertyNodeVI节点(放入过程如图4-53所示),它位于Function模板AllFunctionInstrumentsI/O子模板VISA子模板VISAAdvanced子模板中。在PropertyNodeVI节点上单击鼠标右键选择SelectClass下的DataSocket,则标签由Instr变为DataSocket。,图4-52DataSocket服务器端的设置,.,图4-53放入PropertyNodeVI的过程,.,在PropertyNodeVI上下拉箭头增加端子并在相应端子单击鼠标左键,分别设置两个端子的属性为:BufferMaximumBytes和BufferMaximumPackets;又分别在BufferMaximumBytes和BufferMaximumPackets端单击鼠标右键创建一个Constant,其值设为102400和25;最后在PropertyNodeVI上单击鼠标右键选择ChangeAllToWrite并将两端子与102400和25连线。将DataSocketOpenVI的ConnectionID与PropertyNodeVI的ConnectionID相连接,以完成客户端缓存的指定,如图4-54所示的客户端框图程序。,图4-54DataSocket使用缓存方式的发送端的框图程序,.,为了监测缓存的大小,在DataSocketReadVI之后增加一个PropertyNodeVI节点,将DataSocketReadVI的Connectionout与PropertyNodeVI的ConnectionID相连接;为PropertyNode的属性输出添加两个指示器,以便观察其BufferMaximumBytes和BufferMaximumPackets的值,如图4-55所示的客户端框图程序。,图4-55DataSocket使用缓存方式的客户端(接收端)框图程序,.,为了进一步了解DataSocket使用缓存方式传输数据的程序运行情况,首先要打开DataSocketServer并运行DataSocketWriter(缓存发送).vi程序,再运行DataSocketReader(缓存接收).viI程序,对应的框图程序如图4-54和4-55所示,其运行结果如图4-56和4-57所示。,图4-56DataSocket使用缓存方式的发送端前面板运行结果,图4-57DataSocket使用缓存方式的接收端前面板运行界面,.,4.5基于Web的远程发布4.5.1在Web上发布LabVIEW程序在Web上发布LabVIEW程序有多种方式,但在使用每种方式之前都必须首先在发布程序的计算机上打开Web服务器。LabVIEW的Web服务器默认值可以满足大多数程序的发布需要,但在此仍需了解一些有关WebServer设置的方法。WebServer需进行三个方面的设置:WebServerConfiguartion-Web服务器设置;WebServerBrowerAccess-Web浏览器访问权限设置;WebServerVisibleVIs程序可见设置。1Web服务器设置打开与设置Web服务器的方法是在LabVIEW主菜单中选择ToolsOption,在随后弹出的“LabVIEWOption”对话框上部的下拉列表框中选择“WebServer:Configuartion”,切换到“WebServer:Configuartion”页面,如图4-58和图4-59所示。,.,EnableWebServer:启动LabVIEWWebServer。RootDirectory是Web服务器存放HTML文件的位置,默认路径如图3-59所示。LabVIEWWebServer默认的端口号为80,否则需重新填写端口号(推荐给用户自定义TCP/IP应用程序使用的网络端口号为:49152-65535)。Timeout:WebServer等待请求的时间。LogFile:LabVIEW保存Web连接信息文件的位置,默认路径如图4-59所示。设置完成后单击OK按钮,Web服务器启动。,图4-58WebServer:Configuration选项,图4-59Web服务器设置对话框,.,2Web浏览器访问权限设置在“LabVIEWOption”对话框上部的下拉列表框中选择“WebServer:BrowserAccess”,出现如图4-60所示的对话框,点击“Add”按钮,添加BrowserAccessList中的条目并在右侧上方的空格中填写计算机的IP地址或计算机名称(注:可以使用通配符和域名,“*”号代表网络中的所有计算机)。点击“Remove”按钮,则删除BrowserAccessList中的条目。一旦添加了BrowserAccessList中的条目,则可通过以下选项进行Web浏览器访问权限设置的设置:,图4-60WebServer浏览器访问权限设置,.,AllowViewingandControlling:允许查看及控制。一旦选中此项,则在访问列表中的计算机左边会出现两个绿色小,表明远程计算机可以在远程面板链接或浏览页面时控制程序运行。AllowViewing:允许查看。一旦选中此项,则在访问列表中的计算机左边会出现一个绿色小,表明远程计算机只能对程序面板查看。DenyAccess:拒绝访问。一旦选中此项,则在访问列表中的计算机左边会出现一个红色小。,.,3程序可见设置同样在“LabVIEWOption”对话框上部的下拉列表框中选择“WebServer:VisibleVis”,出现如图4-61所示的对话框,点击“Add”按钮,添加VisibleVIs中条目并在表右侧上方的空格中填写程序名(注:可以使用通配符和路径,“*”号代表内存中的所有程序)。点击“Remove”按钮,则删除VisibleVIs中的条目。ControlTimeLimit用来设置程序被网络上的计算机控制的时间,默认为300。选中“AllowAccess”,则在程序的左边会出现一个绿色小,否则为一个红色小。,.,在Web中浏览程序前面板的URL格式为:http:/发布程序的计算机IP地址或计算机名/.snap?或.monitor?webpublish.vi“.snap?”表示返回一个静态前面板图像;“.monitor?”则返回动态的图像,Web页面随程序前面板变化自动刷新。“Webpublish.vi”为希望查看的程序名。图4-62所示的URL格式为:http:/localhost/.monitor?TCPWriter(发送).vi,图4-61WebServer程序可见设置,.,图4-62在Web上发布TCPWriter(发送).vi,.,4.5.2在Web上发布HTML文件在LabVIEW7.1环境下,锅炉监控.vi的前面板运行结果如图4-63所示,对应的框图程序如图4-64所示。,图4-63锅炉监控.vi的前面板运行结果,图4-64锅炉监控.vi的框图程序,.,1创建HTML文件创建HTML文件的方法是:利用LabVIEW的Tools菜单中的“Webpublishingtool”命令选项进行,即在LabVIEW前面板设计窗口中,单击Tools菜单的“Webpublishingtool”命令选项(如图4-65所示),出现图4-66所示的“Webpublishingtool”对话框。,图4-65Tools菜单,图4-66Webpublishingtool对话框,.,点击“Done”按钮,将出现图4-67所示的对话框,以提示浏览此网页时输入的URL(本例的URL为:http:/localhost/boiler.htm),点击“Connect”按钮,则在浏览器页面中立即可看到所发布的VI前面板,如图4-68所示。如果在图4-66选中了“RequestControl”选项,则在图4-68所示的网页中可对所发布的VI前面板进行远程监控制。,图4-67浏览网页的URL提示,图4-68网页中运行的锅炉监控界面,.,2浏览HTML文件浏览HTML文件时,不一定非要客户端安装LabVIEW,只需要安装一个运行引擎Run-TimeEngine即可,用户可以在“ftp:/,.,图4-69Operate菜单,图4-70ConnecttoRemotePanel对话框,.,3通过HTML文件远程控制程序在客户端网页上可通过远程控制菜单进行控制权切换。弹出控制菜单(如图4-71)的方法有三种:在网页的前面板图像空白处单击鼠标右键;在图像状态条上单击鼠标左键;在控件上单击鼠标右键弹出快捷菜单选RemotePanelClient。在控制菜单选择“RequestControlofVI”时,如果当前没有其他浏览器在控制程序,就可取得控制权。如果有其他浏览器正在控制程序,则这个请求需在服务器中排队。取得控制权以后,如果在控制菜单中选“ReleaseControlofVI”,则交回程序控制权。在服务器端弹出控制菜单(如图4-72)的方法与网页上一样,但菜单内容不同。在失去控制权时,可以选择“RegainControl”收回控制权;或选择“SwitchController”,在几个请求控制的浏览器中间进行切换。在得到控制权的情况下,可以在控制菜单中选“LockControl”把控制权锁定在服务器端,或在锁定状态下选“UnLockControl”,则允许网页浏览器请求控制。,.,图4-72在服务器端弹出的远程控制菜,图4-71在客户端网页上弹出的控制菜单,.,4.6远程仪器访问技术(RemoteDeviceAccess)在LabVIEW中利用RDA技术实现远程数据采集的步骤如下:第一步:配置RDA服务器。RDA服务器需要安装NIDAQ60(或更高版本)以及DAQ设备,设置服务器的IP地址,例如,其子网掩码为。然后启动服务器上的RemoteDeviceAccessServer即可。若有必要,可以在DAQ设备的属性对话框中设置RDA访问密码。第二步:配置客户机。RDA客户端应安装与服务器相同版本的NIDAQ,否则DAQ设备会无法连接。设置客户机的IP地址,例如,其子网掩码为。RDA客户机的设置比较复杂,通常按照下列步骤进行:(1)在客户机的MAX(Measurement&AutomationExplorer)左侧目录树中的DevicesandInterfaces项的右键弹出菜单中选择“CreateNew”,在CreateNew窗口选择RDAEthernetDevice。(2)在随后出现的SelectRemoteComputer对话框中输入服务器的IP地址或计算机名。(3)在随后出现的System对话框中设定设备号,若服务器上的DAQ设备设置了RDA访问密码,则还需在Password栏中输入正确的密码。,.,4.7两种组建网络化虚拟仪器系统的模式和应用4.7.1C/S模式(客户/服务器模式)图4-73所示为采用C/S模式构成网络化测控系统结构图,它主要由现场测控设备、客户机和远程服务器等组成。,图4-73C/S模式网络化测控系统构成示意图,.,4.7.2B/S模式采用B/S模式构成的Web虚拟仪器是将仪器的前面板发布到Web页面上,以浏览器/服务器的方式实现网络数据、命令传输,以虚拟仪器实现信号采集、显示与分析,最终通过Web服务器与数据采集控制服务器的交互来实现相关的测试与控制需求。它有三层体系:浏览器/Web服务器/数据采集与控制服务器,如图4-74所示。,图4-74Web虚拟仪器系统构成示意图,.,4.7.3应用实例实例4.6基于C/S网络的虚拟任意波形仿真信号发生器的设计设计步骤客户端数据发布VI的设计:分前面板设计和框图程序两部分。前面板设计从Controls模板AllControlsNumCtrls中选择NumericControl控件,依次放置输入型数字控件,或在框图程序中的任意波形发生器图标连线端分别点鼠标右键,出现Create菜单并选择Control,依次在前面板出现相应的输入型数字控件。本例有6个输入型数字控件,分别命名为:端口号、信号类型、信号幅值、信号频率、初始相位、采样周期,供使用者生成所需的信号。从Controls模板AllControlsGraphIndicators中选择WaveformChart图形控件,放置在前面板上,用于显示发送的信号波形。从Controls模板AllControlsBoolean中选择ToggleSwitch控件放置在前面板上,用于控制程序的启停。,.,本例的客户端端口号为2055(可任意设定),在信号类型中选择正弦波、方波、三角波,则运行之后所对应的前面板分别如图4-75、图4-76、图4-77所示。,图4-75正弦波信号的产生,.,图4-76方波信号的产生,图4-77三角波信号的产生,.,框图程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运输承包协议书
- 争当新时代好少年演讲稿
- 甄进明-IT行业-项目管理是企业管理的一项战略决策培训
- 《长城》第一课时教学设计
- 小米小米电视发布会
- 周期性动眼神经麻痹的临床护理
- 2025届陕西省渭南市富平县数学七下期末监测试题含解析
- 广西南宁中学春季学期2025届七年级数学第二学期期末考试试题含解析
- 黑龙江省五常市部分学校2025届八年级数学第二学期期末监测试题含解析
- 五年级语文教师下学期工作总结模版
- 铝模包工合同协议
- 城市绿化项目施工人员培训计划
- 2025中考英语第11讲 任务型阅读之阅读填表(练习)(解析版)
- 产品折价退货协议书
- 休克的急救与护理
- 2025年4月版安全法律法规标准文件清单
- 四川成都历年中考作文题与审题指导(2005-2024)
- 电力过户、更名协议
- 2025浙美版(2024)美术小学一年级下册教学设计(附目录)
- 小学生防汛安全主题班会
- 2025年全国中小学生科普知识竞赛题库附答案(共630题)
评论
0/150
提交评论