资源描述
第十一章 通信编程,11.1,串行通信,11.2 DataSocket,通信技术,11.3 TCP,通信,第十一章 通信编程,11.1,串行通信,早期的仪器、单片机、,PLC,等均使用串口与计算机进行通信,,RS-232,协议是一种通用的串行通信总线。目前,,RS-232,总线仍然是虚拟仪器的构成方式之一。,GPIB,Serial,DAQ,Process,or,Unit Under Test,VXI,Image Acquisition,Motion,Control,PXI,Application,Software,Hardware&Driver Software,LabWindows/CVI,LabVIEW,虚拟仪器系统构成,11.1.1,串行通信模板及节点,LabVIEW,共有,8,个串行通信节点,分别实现串口设置、串口写、串口读、关闭串口及检测串口缓存、中断等功能。模板及图标如下:,11.1.2,串行通信节点的使用方法,初始化串口,(Serial Port Init.VI),该节点用于设置串口号、波特率、数据位、停止位、奇偶校验、缓冲区大小及流量控制等参数。,串口写,(Serial Port Write.VI),对串口进行写操作,端口设置为:,VISA resource name,:设置串口号,;write buffer,:写入串口缓冲区的字符。,Return count,:返回写入串口的字符数。,串口读,(Serial Port Read.VI),对串口进行读操作,端口设置为:,VISA resource name,:设置串口号;,byte count,:读取字符数;,Read buffer,:从串口读到的字符;,Return count,:返回实际读取字符数。,关闭串口,(Serial Port Close.VI),对打开的串口进行关闭操作。,VISA resource name,:设置串口号;,串口检测,(Bytes of Serial Port.VI),检测当前串口输入缓冲区中的字节数。用在,Read,节点读串口前。,串口中断,(Serial Port Break.VI),将串口中断至少,250ms,。,11.1.3,串行通信应用实例,例,13.1,用,LabVIEW,实现双机串行通讯。本例使用两台计算机进行通讯,一台计算机作为服务器,通过串口向外发送数据,另一台计算机作为客户机,接收由服务器发送过来的数据。两台计算机串口的连线如下图:,服务器框图程序,服务器前面板,客户机框图程序,客户机前面板,由一个程序进行串口的读写,前面板。,下面是一个通用串口通讯程序的界面。,11.2 DataSocket,通信技术,DataSocket,是,NI,公司提供的一种网络测控系统开发工具,以实现不同的应用程序和数据源之间的数据共享。,DataSocket,用类似于,Web,中的统一资源定位器,(URL),定位数据,,URL,不同的前缀表示了不同的数据类型:,FILE,本地文件;,HTTP,超文本传输数据;,FTP,文件传输协议;,OPC,OPC,资源;,DSTP,DataSocket,服务器传输的数据。,LabVIEW,中还提供了以下,3,个工具:,DataSocket ActiveX,控件:利用,ActiveX,容 器开发共享数据应用。,DataSocket,服务器管理程序:它是一个配 置和管理工具,具有负责确定,DataSocket,服务的最大连接数,设置服务控制等网络 功能。,DataSocket,服务器:利用,DSTP,协议在应用程 序间交换数据。,11.2.1 DataSocket,管理器,在,LabVIEW,安装后,会出现,DataSocket Sever,和,DataSocket Sevser Manager,应用程序。,启动,DataSocket Sevser Manager,后对话框如下:,11.2.2 DataSocket,服务器,启动,DataSocket Sevser,后对话框如下:,11.2.3 DataSocket,子模板介绍,DataSocket,子模板调用路径为,Functions Data CommunicationDataSocket,打开一个连接,URL,:欲访问的网上用户地址。,mode,:网络中用户连接的模式。,向打开的连接写数据,Data,:表示向,DataSocket,服务器写入的数据。,向打开的连接读数据,Data,:表示从,DataSocket,服务器读出的数据。,关闭打开的连接,选择,Datasocket,的,URL,显示一个对话框供用户选择,URL,。,DataSocket,的前面板对象链接是一种不需要任何编程的网络数据传输方法。通过,DataSocket,将两个程序的前面板对象链接起来,一个发送数据,另一个接收数据,就可以实现对程序的远程控制、数据的远程采集等多种功能。建立前面板对象链接的方法如下:,在需链接的前面板对象上单击右键,选择弹出菜单中,Data OperationsDataSocket Connection,,如下图:,11.2.4,使用,DataSocket,链接前面板对象,弹出以下对话框:,Connect To,:不论发布数据还是接收数据的机器中,都填写发布数据机器的,URL,。,Connections Type,:发布数据选择,Publish,;接收数据选择,Subscribe,。,选中,Enable,选项。完成设置后,前面板对象右上角出现一个链接指示灯。运行后指示灯亮。,注意:在上述程序运行前,必须先从,Windows,程序菜单中打开,DataSocket Sever,。,发送数据前面板及框图程序:,接收数据前面板及框图程序:,11.2.5,使用,DataSocket,传输数据,向,DataSocket,写数据,向指定的,URL,:,dstp:/202.197.33.63/dssine,写数据。数据是一个周期的正弦波,其幅值可用,amplitude,调节。用,error out,作为,while,循环结束条件,即出错即停止。,向,DataSocket,写数据的前面板:,从,DataSocket,读数据,从指定的,URL,:,dstp:/202.197.33.63/dssine,中读数据。其幅值受写,DataSocket,中,amplitude,的调节。用,error out,作为,while,循环结束条件。另外用,Tick Count,测试循环时间。,从,DataSocket,读数据的前面板:,注意:在上述程序运行前,必须先从,Windows,程序菜单中打开,DataSocket Sever,。,11.2.6,基于,DataSocket,的,OPC,数据传输,LabVIEW,中,DataSocket,提供了,OPC,数据传输功能。,OPC,(,OLE for Process Control,)借用,Micro soft,的,OLE,和,COM/DCOM,技术,为异构设备、软件的通讯提供了有效的解决方法,是实现控制系统现场设备级与过程管理级信息交互和控制系统开放性的关键技术。,LabVIEW,中可通过,DataSocket VI,来支持,OPC,应用。在,LabVIEW,中同一个,OPC,服务器建立连接,通过调用,Open.VI,节点实现。,OPC URL,的基本结构为,:opc:/,主机名,/OPC,服务器名,/,数据项目 下面以,SLC500 PLC,为例,介绍,LabVIEW,与,PLC,基于,DataSocket,的数据通信方法。,RSLinx,与其它软件的通信,RSLinx,通讯软件是用于,A-B,可编程控制器的服务器软件,为,A-B,的,PLC,处理器与,Rockwell,公司及其他公司,(,如微软,),的许多软件产品提供了通信连接,如下图。,RSLinx OPC,服务器的设置 在使用,RSLinx OPC,服务器时,先要进行配置和组态。,Step1,配置通信设备。在启动,RSLinx,后,点击,Communications Configure Drivers,,添加一个新设备(,driver,),选择,“,1784-KT/KTX(D)/PKTX(O)/PCMK for DH+/DH-485 devices,”,,并确定新添加的设备无错误,设备状态显示,“,正在运行,”,(,Running,)。,Step2,建立,OPC,主题,(Topic),。在,RSWho,对话框下,找到相应的,PLC,,右击,PLC,图标,选择,“,Configure New DDE/OPC Topic,”,,建立一个,Topic,。,Step3,测试,OPC,服务器。应用,OPCTools,中的,OPC Test Client,可对,Step2,中建立的,MyTopic,主题进行测试。,OPC,读,PLC,数据 在设置好,RSLinx OPC,服务器后,,LabVIEW,通过,DataSocket,的,OPC,层与,RSLinx OPC,服务器进行通信。下图是进行读操作的数据流图。,从图中可以看出读数据流图由个,4,个功能块组成:,a),构建读数据项目数组。对要读取的,OPC,服务器数据项目的,URL,,用数组的形式表示。,b),建立与读数据项目的连接。,c),项目数据更新与显示。,d),关闭与项目的连接。,写,PLC,数据,LabVIEW,通过,RSLinx OPC,服务器对,SLC500 PLC,进行写操作的数据流图如下。,系统前面板如下:,11.3 TCP,通信,TCP/IP,协议是,Internet,最基本的协议,它由低层的,IP,协议和,TCP,协议组成。,LabVIEW,中,可以采用,TCP/IP,节点来实现局域网通讯。,11.3.1 TCP/IP,节点介绍,LabVIEW,中,,TCP/IP,节点在,Functions Data CommunicationProtocolsTCP,子模板中。,TCP Listen.VI,创建一个听着,并在指定的端口等待客户端的,TCP,连接请求。,port,:端口号;,connection ID,:,TCP,连接的标识号;,remote address,:显示和,TCP,连接的远程计算机的,IP,地址;,注意:该节点只能应用于服务器。,TCP Open.VI,用指定的计算机和端口打开以,TCP,连接。,address,:远端服务器地址;,remote port,:用户欲创建的,TCP,连接的端口号;,注意:该节点只能应用于客户机服务器。,TCP Read.VI,从指定的,TCP,连接中读数据。,mode,:读数据模式;,bytes to read,:从指定的,TCP,端口中读取的最多的字节数;,data out,:从,TCP,端口读取的数据;,TCP Write.VI,向打开的,TCP,端口写入数据。,Data in,:向,TCP,端口要写的数据;,TCP Close.VI,关闭指定的,TCP,端口。,TCP Create Listener.VI,创建一个,TCP,连接的听者。,TCP Wait on Listener.VI,在指定的端口上等待,TCP,连接请求。,IP to String.VI,及,String to IP,11.3.2,基于,C/S,模式的网络通讯,采用,C/S,模式是,LabVIEW,进行网络通讯的最基本结构。在本例中由服务器产生一组随机波形,通过局域网送至客户机进行显示。通讯流程如下。,服务器程序设计,客户机程序设计 前面板如下:,客户机框图程序如下:,框图程序中,打开,TCP,函数按照给定的,IP,地址和端口号建立一个,TCP,连接。与服务器程序对应,客户机框图程序也采用两个,TCP Read,节点读数据。其中第一个读数据长度,第二个读数据值。,11.3.3,基于,Web,的网络通讯 使用,LabVIEW,的,Web,服务器在,Web,上发布,LabVIEW,程序,可以使本地或远程计算机浏览,LabVIEW,程序面板,甚至控制,LabVIEW,程序的运行。步骤如下:,Web Server,的配置 在,Web,上发布,LabVIEW,程序有多种方法,但在使用每种方法前必须首先设置和启动,Web,服务器。这些设置在,LabVIEW,主菜单下:,ToolOptions,“,Web Sever:Configuration,”,选中启动,Enable Web Sever,单选框。,Root Directory:,填写,Web,服务器存放,HTML,文件的位置。,Log File,:保存,Web,连接信息文件的位置。,Browser Access List:,列出所有允许或不允许访问,Web,服务器的计算机,IP,或名称。,Allow Access,:允许访问。,Web Server,:,Browser Access,的配置,Visible VIs:,列出所有可以通过,Web,服务器的查看的程序名。,Web Server,:,Visible VIs,的设置,Web,程序的发布,利用,LabVIEW,内嵌的,Web Publishing Tools,就可以把程序发布到,Web,上,供客户端浏览。,Document Title,:出现在网页上的文件标题;,Header,:出现在图像上方的文字;,Footer,:出现在图像下方的文字;,VI Name,:在,Web,上发布的,VI,程序;,Viewing Options,:客户机上的浏览模式,Embedded,:网页中面板图形随程序同步刷 洗。如果安装了,LabVIEW Enterprise Connectivity Toolset,,还可在网页上控制程序的运行;,Snapshot,:网页中面板图形是静态的;,Monitor,:监控状态。,客户机上浏览,LabVIEW,面板,在,Web,上浏览程序前面板时,URL,填写格式为:,Http:/202.197.33.63/.snap?Web,发布程序,.vi,这里,202.197.33.63,为计算机,IP,地址,,Web,发布程序,.vi,为希望查看的程序名,注意必须填写,.vi,。,.snap?,表示返回一个静态前面板。如将,.snap?,改写为,.monitor?,则返回动态的图像。,LabVIEW VIs,的前面板,可以监测远程计算机上一个程序的前面板,甚至完全控制一个程序的运行。,前面板的远程链接的方法如下:点击,OperateConnect to Remote Panel,,弹出以下对话框:,11.3.3,前面板的远程链接,Web,浏览的前面板,
展开阅读全文