微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于LabVIEW的数控机床网络测控系统--网络通信关键技术研究 1

基于LabVIEW的数控机床网络测控系统--网络通信关键技术研究 1

时间:02-06 来源:互联网 点击:

(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资源定位

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top