基于LabWIEW数控机床远程测控系统的网络通信关键技术研究
采用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中所设定的具有各种权限的用户组和
远程测控网络通信虚拟仪器LabVIE 相关文章:
- 频宽、取样速率及奈奎斯特定理(09-14)
- 为什么要进行信号调理?(09-30)
- IEEE802.16-2004 WiMAX物理层操作和测量(09-16)
- 为任意波形发生器增加价值(10-27)
- 基于PCI 总线的高速数据采集系统(09-30)
- 泰克全新VM6000视频测试仪助力数字电视等产品测试 (10-06)