刘 志 李园喜 季旭东
(91550部队3分队 辽宁 大连 116023)
通信网络中虚拟仪器系统的应用研究
刘 志 李园喜 季旭东
(91550部队3分队 辽宁 大连 116023)
根据远程分布式测试要求的需要,基于网络通信应用,研究将虚拟仪器系统中UDP协议的灵活性与TCP协议的可靠性结合,开发适应复杂恶劣网络环境的实用网络通信技术。
网络通信;UDP协议;TCP协议;虚拟系统
近年来随着靶场通信网络的日益完善,基于光纤、卫通和微波的各种局域网、广域网得到了频繁的应用,与此相应广域信息共享的需求日益增长,远程分布式测试的要求越来越多的被提出,例如设备故障的远程诊断,各类过程的远程监控等。而随着计算机网络技术和通信技术的快速发展,虚拟仪器系统正以其低廉的成本、灵活的组合方式和强大的功能在各个领域得到广泛应用。本文对以LabVIEW为代表的虚拟仪器平台在网络通信中的应用进行了研究,力图找出适应复杂恶劣的网络环境和各种测试系统的个性化要求的高质量远程测试系统。
2.1 高效的网络通信技术
LabVIEW作为目前最流行的虚拟仪器开发平台,为构建远程测试系统提供了多种强大的功能和方便灵活的工具。其中DataSocket是一种建立在TCP/IP协议的基础之上,但是专门为满足测试与自动化的需求而设计的网络通信技术。使用DataSocket技术传输数据不用进行复杂的底层TCP编程,就可以通过计算机网络以自己特有编码格式向多个远程的终端同时广播现场的各种类型的测量数据。这样极大的提高了测试系统开发效率。
DataSocket由DataSocket API和DataSocket Server两部分组成。使用DataSocket传输数据的过程如图1所示。
图1 DataSocket传输数据过程
数据发布程序和数据订户程序都是DataSocket Server的客户,DataSocket Server是一个小巧的独立运行的程序,传输数据的程序中使用DataSocket API与DataSocket Server通讯。DataSocket API提供了一个用于多样编程语言、多种数据类型通讯的单一的接口,在LabVIEW中DataSocket API的形式是一组函数。发布数据的程序用DataSocket Write函数向URL指定的位置写数据,接收数据的程序用DataSocket Read函数从URL指定的位置读取数据。
使用DataSocket协议传输数据,在默认情况下DataSocket Server只向数据订户发布最新的数据,当发布数据的客户比接收数据的客户运行快,则将有一些数据还没有读取就被覆盖掉。如果每一个数据对于客户都很重要的话,就应该使用数据缓冲区的方法传输数据。使用数据缓冲区读数据的客户端程序图形代码如图2所示。
图2 DataSocket使用缓冲区读数据程序图形代码
程序中DataSocket Open函数根据DataSocket Select URL函数输入的URL建立一个DataSocket连接,并将连接参考号connection ID输出,这个连接将一直保持到使用DataSocket Close函数将连接关闭或程序停止。DataSocket Open函数的模式参数mode选为BufferedRead。连接参考号到属性节点时,属性节点的类名称变为DataSocket。程序中两个属性节点分别用于缓冲区设置和缓冲区诊断。DataSocket Read函数根据connection ID指定的网络连接接收数据。
2.2 UDP网络通信协议的应用
尽管LabVIEW提供了高效、易用的DataSocket网络技术,但是在需要对网络功能进行更多的控制和跨越操作系统平台传输数据时它也有一定的局限性。例如接收远程终端设备的数据、网络经常发生拥塞需要及时自动恢复连接、默认的3015端口被其它通信程序占用必须更改端口等情况下就不便使用DataSocket。因此LabVIEW也支持许多底层的网络协议,例如TCP、IP、UDP等。
UDP具有更高的性能,但是不能保证数据可靠传输。在可靠性不是非常重要的应用,例如传输数据频率很快,少量数据丢失无关紧要时,使用UDP协议。UDP读回的每个数据包包含数据源地址和端口,因此一次读到的数据不会来自两个不同的写数据操作。
图4 使用UDP协议传输数据的程序图形代码
图4的程序是使用UDP协议传送数据的例子,图中(a)是发送数据的程序图形代码,(b)是接收数据的程序图形代码。
UDP Open函数为指定的端口打开一个UDP套接字;UDP Write函数向远程UDP套接字写数据;UDP Read函数从UDP套接字读取一个数据包;UDP Close函数关闭UDP套接字。
2.3 TCP/IP网络通信协议的应用
与UDP协议不同,TCP是一种可靠的基于连接的服务。图3的程序是使用TCP通信协议传输数据的例子,图中(a)是发送数据的程序图形代码,(b)是接收数据的程序图形代码。
图3 使用TCP协议传输数据的程序图形代码
TCP Listen函数创建一个TCP收听者,等待指定端口的TCP网络连接,用connection ID参数输出网络连接参考号。后面的函数用connection ID的值执行特定连接的任务。Sine Pattern函数产生一个周期的正弦波数据。Type Cast函数将x参数连接的数据转换为type参数的类型,type参数的默认值是字符串。String Length函数返回字符串长度,首先写入TCP 网络连接,以便确定网络传输的字节数。TCP Write函数按照connection ID将data in参数连接的数据写入TCP 网络连接。TCP Write函数在这个程序中第二次被调用时将实际数据写入TCP连接。TCP Close 函数在程序结束时关闭connection ID指向的连接。
Open Connection函数按照连接的IP地址和端口号参数建立一个TCP连接,连接成功后返回连接标识connection ID。TCP Read函数按照byte to read参数指定的字节数和connection ID 参数给定的TCP连接接收数据。TCP Read函数读取的数据经过Type Cast函数转换为整型数,作为第二次调用TCP Read函数时的byte to read参数,读出全部数据。
工程实际中测试系统的数据传输经常要跨越集线器、交换机、路由器等各种网络设备,经过电缆、光缆、微波甚至卫星等传输介质,被各种网络管理软件转发、过滤、检验、分配,这个过程及其复杂;而且在网络上同时承载着管理系统、各种信息查询、甚至某些情况下的个人娱乐等大量数据传输。这样给远程测试应用程序的可靠性、顽强性和通信速度带来极大的考验。为了适应复杂的现场的需求,必须整合TCP协议和UDP协议的技术优势,开发实用的通信程序。
图5(a)所示的服务器程序启动后,在网络上监听TCP连接的请求。连接建立后,即应用TCP协议向客户端发送数据。同时打开一个UDP套接字,接收来自客户端的确认信息ack。一旦网络出现故障,收不到确认信息,立即断开TCP连接,并重新进入TCP连接监听状态。
图5(b)所示的客户端程序启动后,首先建立TCP连接,然后应用TCP协议接收数据。如果正常接收数据,则每次向服务器端发送一个确认信息;如果收不到数据就断开原来TCP连接,重新建立一个TCP连接。
这种双向通信的服务器/客户端模式,不同于TCP协议本身的数据传输确认机制。TCP协议在传输数据时,一个数据包发送不到目的地会反复地重发。这在正常情况下避免了数据的丢失;但是在网络出现异常时程序就会陷入停滞;并且在网络恢复正常后程序不具备“自愈”的能力。
采用TCP协议与UDP协议混合编程,在网络正常时利用TCP协议的可靠性,保证数据正确传输;在网络异常时发挥UDP协议的灵活性,保证通信及时恢复。这种通信方式在跨越多网段的企业局域网和CDMA(Code Division Multiple Access码分多址)无线移动公网上经过长期应用,保证了数据顺畅传输,测试系统正常运行。
图5 TCP和UDP协议联合应用的通信程序图形代码
采用虚拟仪器开发远程测控系统,需要根据根据不同的测试对象,兼顾数据传输可靠性的要求和网络的实际状况,灵活选择网络通信协议和数据传输方案。在良好的网络环境下DataSocket是一种高效率、易于应用的网络通信技术;某些特定的情况需要采用TCP协议或UDP协议编程;而当网络环境复杂恶劣时,本文提出的用TCP协议传输数据,用UDP协议进行通信保障的方法,是满足工程实践严格要求的优化的网络通信技术。
[1]戴尔晗,孙海安。基于LabVIEW的IP网络管理[J].国外电子测量技术,2005年第24卷第12期.
[2] Using LabVIEW with TCP/IP and UDP, USA National Instruments corporation, March 2004.
[3]马时来.计算机网络实用技术教程[M].北京:清华大学出版社 2003年.
[4] 冯冬芹,廖智军,金建祥等.基于以太网的工业控制网络实时通信模型研究[J].仪器仪表学报,2005年第26卷第9期
[5]乔毅,张涛,唐明新等.由嵌入式网关实现控制网络与信息网络的集成[J].仪器仪表学报,2005年第26卷第12期
[6] 李亚军 计算机测控系统设计与应用 北京:机械工业出版社,2004年
Research in the Application of Virtual Instrument System for Network
LIU Zhi, LI Yuan-xi, JI Xu-dong. (91550 Troops 3Unit, Liaoning Province, Dalian 116023, China)
According to the needs of remote distributed testing requirements, based on network communication application, the research will be of the UDP protocol in virtual instrument system flexibility and the reliability of TCP protocol, developed to adapt to the complex of the network environment, the network communication technique.
Network communication; UDP protocol; TCP protocol; The virtual system
TN914.3
A
1009-5624-(2016)02-0026-03