一种基于TCP/IP的远程网络通信方法研究
2015-10-17◆苏娟
◆苏 娟
(一院十五所五室 北京 100000)
0 引言
随着计算机和网络技术的飞速发展,仪器智能化以及远程控制仪器操作具有非常重要的意义和使用价值。以Internet为代表的网络技术的出现,为远程通信及测控技术带来了更大的发展空间和机遇。网络化的测控技术与具备网络功能的新型仪器的应运而生,满足了大型工业自动化系统远程控制、远程监视、远程访问以及远程数据传送等复杂测控任务,极大地提高了测控能力。通过Internet技术可以将许多监控工作站连接到Internet,从而实现远程控制和数据共享。测控方式的网络化,是未来测控技术发展的必然趋势,它能够充分利用现有资源和网络带来的种种好处,实现各种资源的最有效合理配置。
本文针对大型工业控制系统信息传输距离远、网络拓扑结构复杂,信息种类繁杂,通信可靠性要求高的特点,基于 TCP/IP网络通信协议,实现了大型工业测控系统信息管理平台的搭建。
1 系统设计
图1 大型测控系统网络结构图
在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户机/服务器模式(C/S),即客户机向服务器发出服务请求,服务器接到请求后,提供相应的服务。在大型工业测控系统中,根据网络拓扑结构,通常采用“一对一”或者“一对多”的TCP通信方式。如图1所示,指挥计算机与各分系统计算机位于不同网段,信息管理工作站作为连接指挥计算机和各分系统的中转站,主要作用是转发指挥计算机的指令给各分系统工作站,各分系统工作站通过控制相应的测试设备,将控制结果回复给信息管理工作站。信息管理工作站再对各分系统的信息进行有效的校验整合,剔除无效信息,简化有效信息,统一转发给指挥计算机,从而实现了信息的集中和分布控制、统一管理、资源共享。
LabView可直接使用TCP/IP的传输层,这一层的功能主要是提供应用程序间的通信,TCP/IP协议簇在这一层的协议有TCP和 UDP,LabView提供了与这两个协议相关的功能函数。UDP协议较为简单,但可靠性稍差;TCP协议提供的是面向连接、可靠的字节流服务。当客户端和服务器彼此交换数据前,必须先在双方之间通过“三次握手”协议建立一个TCP连接,之后才能传输数据。TCP提供了超时重发、丢弃重复数据、检验数据、流量控制等功能,保证数据能顺序从一端传到另一端,因此,为了实现可靠的数据传输,考虑使用TCP协议构建信息管理工作站PC端通信模块。根据网络物理特性,在软件设计上采用二级服务器/客户端的通信模式,具体通信流程图如图2所示。
图2 二级TCP通信流程图
其中,信息管理工作站作为客户端与总控网指挥计算机通信,达到指令接收、重组,回令转发;同时作为服务器与各个分系统计算机通信,达到指令转发,回令接收、重组的功能。
2 基于LABVIEW的TCP编程
在LabVIEW中,可以采用TCP节点来实现基于TCP协议的局域网通讯,该节点在函数面板的数据通信/协议/TCP下,该节点分为三个部分:
(1)Connection节点:用于建立客户机和服务器之间通讯的连接;
(2)Transmission节点:用于在客户机和服务器之间传输数据;
(3)Conversion节点:用于计算机IP地址和计算机名称间的切换。
基于Labview多线程并行执行,分割时间片占用CPU资源的运行机制。信息管理工作站监测软件分为:服务器端建立侦听、服务器端接收数据、服务器端数据发送、客户端数据通信(发送/接收)、数据处理及显示线程。线程之间的数据流如图3所示。
图3 信息管理工作站数据流图
其中,客户端数据通信线程包括数据接收子线程、数据发送子线程。当客户端TCP/IP打开连接成功,数据接收和数据发送子线程通过WHILE循环分别调用读取TCP数据、写入TCP数据函数独立工作,当其中某一个子线程返回通信错误状态为真,则两个子线程同时停止工作,重新打开连接,进入下一轮循环。
服务器端数据数据处理线程包括服务器端数据接收线程、服务器端数据发送线程。通过LV2型全局变量实现TCP连接ID在不同线程之间的资源冲突与共享。服务器端数据接收线程通过设置每次接收的数据帧最大长度(1000帧)和建立数据缓冲区,对接收到的数据包进行重组和校验,实现了数据正确有序解析并显示;服务器端数据发送线程通过读取数据发送队列状态,实现了一次循环从队列中读取多帧待发送信息,并通过LV2型全局变量实时传递各分系统连接 ID,实现指令数据的分发。通过试验表明,信息管理工作站监测软件实现了跨网段的复杂网络拓扑结构的可靠通信。系统架构设计合理,数据处理方法有效。