基于Internet组建数控机床网络测控系统目前主要有两种基本的模式:C/S和B/S模式。两种通信模式各有自己的优缺点,本章将对两种结构进行详细的比较。同时在LabVIEW环境下实现网络通信的也有多种方式,在本章中会做一一比较。数据的存储与访问也是实现远程测控系统的关键,在本章最后会进行 Web数据库的设计和LabVIEW平台下实现远程数据库的访问技术方面的分析与研究。
4.1 B/S结构与C/S结构的比较
本文提出的基于Internet组建网络化测控系统目前主要有两种基本的模式:C/S和B/S模式,性能和功能场合上各有自己的优缺点,现做如下分析对比。
(1)C/S模式:(客户/服务器模式)
C/S模式模型是网络通信中常用的一种模型,通常集散控制系统多采用这种结构,它一般有多个客户端来采集数据,而且通常有一个服务器来充当数据库的角色,客户端通过通信协议把测试数据写入远程服务器数据库。这种模型的设计包括两个方面:客户端采集程序和远程发布的程序设计以及客户端数据的接收程序的设计。在LabVIEW环境下,专门为测试数据的安全快速的传输设置了DSTP协议。
C/S模式的优点:
①由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。
②操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。
③C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。
C/S模式的缺点:
①需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。
②兼容性差,对于不同的开发工具,具有较大的局限性。若采用不同工具,需要重新改写程序。
③开发成本较高,需要具有一定专业水准的技术人员才能完成。
(2)B/S模式:(浏览器/服务器模式)
B/S模型是为了方便用户在Web下发布数据。通常用户端只需要安装一个浏览器,直接访问该测控网站的地址,就可以监视远程测控点的数据变化情况。它的主要工作就是在服务器端程序的开发,不存在客户端程序的开发和维护。在B/S模式下,一般采用HTTP协议。B/S组网模式的网络化虚拟仪器如图4.1所示。
B/S模式的优点:
①具有分布性特点,可以随时随地进行查询、浏览等业务处理。
②业务扩展简单方便,通过增加网页即可增加服务器功能。
③维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
④开发简单,共享性强。
B/S模式的缺点:
①个性化特点明显降低,无法实现具有个性化的功能要求。
②操作是以鼠标为最基本的操作方式,无法满足快速操作的要求。
③页面动态刷新,响应速度明显降低。
④无法实现分页显示,给数据库访问造成较大的压力。
⑤功能弱化,难以实现传统模式下的特殊功能要求。
综上所述,B/S模式建立在广域网上,面向不同的用户群,分散地域,这是C/S模式无法作到的。与操作系统平台关系最小。C/S模式多是建立的 Window平台上,表现方法有限,对程序员普遍要求较高,B/S模式建立在浏览器上,有更加丰富和生动的表现方式与用户交流。。并且大部分难度减低,降低开发成本。鉴于两种结构模式优缺点性能的比较和笔者的论文实现难以上考虑,本文的远程测控系统采用B/S模式。
4.2 LabVIEW实现网络通信的方法研究
数控机床远程测控系统有多种实现网络通信的方法。
其中,基于虚拟仪器LabVIEW实现网络通信有四大类方法:
(1)使用网络通信协议编程实现网络通信,可以使用的通信协议类型包括TCP/IP协议、UDP、串口通信协议、无线网络协议、Socket等;
(2)使用基于TCP/IP的数据传输协议DSTP的DataSocket技术实现网络通信;
(3)使用共享变量实现网络通信;
(4)通过远程访问来实现网络通信。
本节将简单地分析了各种方法的优缺点及应用场合。
4.2.1 TCP与UDP通信技术
TCP与UDP,这些协议在绝大多数计算机上都有安装,因此他们的使用更为普遍,但是正是由于这些协议更加基础,因此针对它们的编程要更加复杂,用户需要考虑如何建立连接、分配端口号、进行地址转换等。LabVIEW为用户提供了封装好的VI函数,大大简化了TCP与UDP编程。
网络通信协议是网络中传递、管理信息的一些规范,是计算机之间相互通信需要共同遵守的一些规则。网络通信协议通常被分为多个层次,每一层完成一定的功能,通信在对应的层次之间进行。LabVIEW中支持的通信协议类型包括TCP/IP、UDP、串口通信协议、无线网络协议和邮件传输协议。TCP/IP协议体系是目前最成功,使用最频繁的Internet协议,有着良好的实用性和开放性。它定义了网络层的网际互连协议IP,传输层的传输控制协议TCP、用户数据协议UDP等。
选择采用C/S模式网络应用构架时,网络通信利用Socket编程。Socket是TCP/IP协议传输所提供的接口,一般对于软件开发主要使用两种类型的套接字:
(1)流式套接字
流式套接字为应用程序提供可靠的通信连接和无边界限制的双向数据流,能够提供有序、无重复的传输,适用于处理大量数据,并适用于要求得到响应的应用程序。流式套接字是基于直接连接的,建立在TCP基础上。TCP三次握手——使用TCP协议的流程图如图4.2所示
(2)数据报套接字
支持双向数据流动,但不能保证数据的顺序和不重复性,同时也不十分可靠。数据报是无连接的,由UDP(用户数据报协议)支持,几乎是直接建立在IP层上,传输速度比较快。UDP即用户数据报协议,它是一种无连接协议,因此不需要像TCP那样通过三次握手来建立一个连接。同时,一个UDP应用可同时作为应用的客户端或服务器端。由于UDP协议并不需要建立一个明确的连接,因此建立UDP应用要比建立TCP应用简单得多。它比TCP协议更为高效,也能更好地解决实时性的问题。使用UDP协议的流程图如图4.3所示。
其中Socket信息数据结构程序如下:
struct sockaddr
{
unsigned short sa_family; /*地址族*/
char sa_data[14]; /*14字节的协议地址,包含该socket的IP地址和端口号。*/
};
struct sockaddr_in
{
short int sa_family; /*地址族*/
unsigned short int sin_port; /*端口号*/
struct in_addr sin_addr; /*IP地址*/
unsigned char sin_zero[8]; /*填充0以保持与struct sockaddr同样大小*/
};
LabVIEW中为网络通讯提供了基于TCP/UDP的通讯函数供用户调用。这样用户可直接调用TCP模块中已发布的TCP VI及相关的子VI来完成流程的编写,而无需过多考虑网络的底层实现。在设计上采用C/S(客户端/服务器)通信模式,VI程序分为两部分:处理主机工作在Server模式,完成数据接收,并提供数据的相关处理;数据点计算机工作于Client模式,实现数据传送。TCP传输数据过程如下:首先由发送端发送连接请求,接收端侦听到请求后回复并建立连接,然后开始传输,数据传输完成后关闭连接,传输过程结束。
(3)利用TCP协议通信实例
以下通过C/S(客户端/服务器)通信模式实现的数据传输模式。
在服务器端,用“TCP Create Listener”节点创建侦听,“TCP Wait on Listener”节点等待客户机连接,通过循环产生100个正弦信号数据,用两个“TCP Write”节点来发送数据,第一个节点用来发送波形数据的长度,第二个节点发送波形数据,最后,用“TCP Close Connection”节点结束连接。程序框图如图4.4所示:
在客户端,用“TCP Open Connection”节点打开TCP连接,用两个“TCP Read”节点读取数据,第一个节点接收波形长度作为第二个节点的输入,第二个节点接收波形数据,最后,用“TCP Close Connection”节点结束连接。程序框图如图4.5所示:
运行TCP客户端程序,显示结果如下图4.6所示。
4.2.2 DataSocket技术
在LabVIEW中实现网络通信的最简单方法就是DataSocket.由于DataSocket可以应用于任何编程环境,而且支持多种协议(PSP、 DSTP、OPC、LOOKOUT、HTTP、FTP和文件访问)。DataSocket是一种编程技术,它简化了网络计算机之间尤其是现场数据的交换。 DataSocket技术是一种面向测控领域的网上实时数据交换编程技术,DataSocket技术基于Microsoft的COM和ActiveX技术,对TCP/IP协议进行高度封装,它包括了通用资源定位符URL (UNIform Resource Locator)和文件格式等技术规范。它能大大简化Internet网上计算机之间测控数据交换的编程工作。DataSocket也可用于一台计算机内或局域网中多个应用程序之间的数据交换,DataSocket的体系结构如图所示。
(1)DataSocket逻辑构成DataSocket包括DataSocket Server Manager(以下简Manager),DataSocket Server和DataSocket API一部分。
Manager是一个独立运行的程序,主要功能有:设置DataSocket Server连接的客户端程序的最大数目和创建数据项的最大数目:创建用户组和用户;设置用户创建和读写数据项的权限;限制身份不明的客户对服务器进行访问和攻击。例如,将Manager中的Default Reader设置为everyhost,则网中的每台客户计算机都可以读取服务器上的数据。Manager对DataSocket Server的配置必须在本地计算机上进行,而不能远程配置或通过运行程序来配置。
DataSocket Server是一个必须运行在服务器端的程序,负责监管Manager中所设定的具有各种权限的用户组和客户端程序之间的数据交换。DataSocket Server通过内部数据自描述格式对TCP/IP进行优化和管理,简化Internet.通信方式,提供自由的数据传输,可以直接传送虚拟仪器程序所采集到的布尔型、数字型、字符串型、数组型和波形等常用类型的数据。它可以和测控应用程序安装在同一台计算机上,也可以分装在不同的计算机上,以便用防火墙进行隔离来增加整个系统的安全性。DataSocket Server不会占用测控计算机CPU的工作时间,测控应用程序可以运行得更快。
DataSocket API提供独立的接口,用于不同的语言平台内部多种数据类型的通读。在LabVIEW中,DataSocket API被制作成ActiveX控件和一系列功能VI(Virtual Instrument),用户可以方便地使用。一般由服务器进行数据采集,根据需要将测量地数据写入DataSocket数据公共区,然后客户端通过网络充数据公共区读取所需地测量数据。DataSocket API包含有Open、Read、Write和Close等函数,其中的Read和Write函数又分为单个或数组形式的字符串型、布尔型、数值型和波形等多种类型。DataSocket技术可在C语言、VB和LabVIEW等多种开发环境中应用。
(2)DataSocket资源定位
DataSocket对外提升资源定位接口和功能调用接口,通过同意资源定位符(URL)对数据的传输目的地进行定位,读数据时为源地址,写数据时为宿地址。在资源定位符中标明数据的传输协议、网络计算机标志和数据缓冲区变量。DataSocket支持多种数据传送协议,不同的URL前缀表示不同的协议或数据类型。主要包括:
①DSTP(DataSocket Transfer Protocol):DataSocket的专门通信协议,可以传输各种类型的数据,当使用这个协议时,VI与DataSocket Server连接,用户必须为数据提供一个附加到URL的标识Tag,DataSocket连接利用Tag在DataSocket Server上为一个特殊的数据项目指定地址,目前应用虚拟仪器技术组建的测量网络大多采用该协议;
②HTTP(Hyper Text Transfer Protocol,超文本传输协议);
③FTP(File Transfer Protocol,文件传输协议);
④OPC(OLE for Process Control,操作计划和控制);特别为实时产生的数据而涉及,例如工业自动化操作而产生的数据。要使用该协议,须首先运行OPC Server;
⑤Fieldpoint,Logos,Lookout:分别为NI FieldPoint模块,LabVIEW数据记录与监控(DSC)模块及NI Lookout模块的通信协议;
⑥File(local file servers,本地文件服务器);可提供一个到包含数据的本地文件或网络文件的连接。
(3)DataSocket网络通信实现途径
在LabVIEW中运用DataSocket技术实现网络通信有两种途径:前面板控件属性直接连接和利用DataSocket VI编程。具体实现方式见下图4.8所示:
用DataSocket在数据发送端首先形成具有一定规律的数据流,再用DataSocket控件的写操作把这些数据传输到DataSocket服务器,在各客户端用读操作从服务器获取数据流,然后对数据流进行解析并恢复为原始信息在客户端形成的响应。这样就实现协同工作的基本流程。整个应用分成“写”和 “读”两个模块。
写模块的核心时DataSocket write vi.它在工作前需要用户指定数据宿的URL地址。
VI每次从上一步程序接收数据后形成数据包并送到目标地址。在数据传送过程中,写端计算机的DataSocket Server会实时监视网络连接和数据传送情况。“写”模块选择条件为“True”时的程序,详见图4.8.
读模块起核心作用的时DataSocket Read vi,其数据源的URL地址须与数据宿的URL地址相同,要注意接收的数据类型与写端输出的数据类型一致。读端计算机也会运行DataSocket Server来监视网络接收和数据接收情况。“读”模块程序详见图4.9.
有时网络拥塞会使数据传送周期变长,可以在程序的循环中设置等待时间(ms),本应用写端和读端分别设计为1000和100.在实际现场应用时,应尽量有专用的传送线路,一面网络拥塞时发生数据丢失。DataSocket Server读取的数据可以做进一步的处理,并存储起来以供调用。
评论
查看更多