技术中心
 
 

基于客户端-服务器模式的远程测控系统

   日期:2008-09-22     来源:中国测控网     作者:管理员    

外场光电测控是一种野外环境下进行的远距离非接触式的测量,系统由于本身所含分系统数量多,通信复杂,无法实现光电测控系统的统一控制,完全发挥其自身功能。针对通信方式多样化以及对于某些外场中具有危险性的测量试验、气候条件不适合人员操作的恶劣环境,设计了基于以太网络的远程测控系统完成测量试验。

通过网络进行测量和数据采集,数据处理中心可以远程监视试验过程、获取试验数据,是测控系统网络化的发展趋势。这种方式使测控跨越了空间和时间的界限,与传统仪器和测控方式相比,是一个质的飞跃,而且还能实现测控设备和测控信息等测控资源的共享。

1 系统体系结构

由于C/S(客户端/服务器)模式交互性强,实时性和灵活性好,具有强壮的数据操纵和事务处理能力,采用的协议其专用性和封闭性使得整个C/S模式系统相对安全,所以本系统采用TCP/IP协议,基于C/S的操作模式。这种方式隐含了客户端/服务器间硬件资源的不平等以及通信时的非对称性。在实际测控中,多台光电测控设备在不同站点同时进行测量,数据处理中心对多个测量站进行协调和监控,即为一客户端对多服务器的结构(客户端为数据处理中心)。

由于系统要求保留原有的本地控制功能,而且基于以太网的远程测控因网络传输不能达到十分严格的实时控制要求,因此,本方案采用保持型与完成型结合的远程监控方式,将客户端置于反馈回路之外。远程测控原理如图1所示,客户端监控程序发送控制命令和试验参数给服务器端设备控制程序,设备控制程序通过本地总线完成设备的运动控制和测量操作,并将执行结果返回给客户端用户。客户端控制各测最现场试验过程的进行并全程监控,一方面,利用UDP协议和双缓冲技术,对测量现场计算机的工作状况进行监控,另一方面,每台光电测控设备配有彩色监视摄像机,客户端用户可以通过传回的图像了解测量现场概况。必要时可以修改试验参数,对试验过程进行干涉,客户端还可以通过网络采集设备状态信息,进行远程诊断。
图2 客户端与服务器端程序交互流程图


2.1.1 多线程并发技术
在远程测控过程中,会有大量的图像及数据文件需要传输,网络通信必然会对需要同时进行的数据转换、数据处理及人机交互产生影响。多线程技术可以提高客户机与服务器的并发处理能力,更有效地解决了网络传输阻塞问题,避免部分阻塞操作对人机界面的影响并提高程序的运行效率。本系统中客户端和服务器均使用一个用户界面线程和多个辅助工作线程相结合的设计。服务器端多线程主要完成监听连接、命令处理、采集、数据转换和数据传输,客户端主线程负责窗口信息和界面的维护,工作线程负责数据接收、数据的显示及处理等功能。
2.1.2 系统通信协议
从客户端连接服务器然后开始远程实验,直到试验结束,整个过程中,客户端和服务器的数据交换是程序的重点问题。客户端要向服务器传递试验信息、控制参数、各种服务请求,服务器要向客户端传递试验结果、系统状态、查询试验结果等。程序必须保证所有的数据有条不紊地传递而且可以被对方正确地接收和存取。然而,在Winsock基础上开发的服务器与客户端之间传送的只是字节流,要进行控制就必须将这些字节流转换为有意义的控制指令信息,因此必须约定双方数据通信的协议。
通信协议的复杂程度取决于控制系统的复杂程度,分为客户端协议和服务器协议,主要交互命令控制、命令响应及图像数据等,表1列举了简单的命令控制协议和图像数据传输协议。


表1 控制协议与图象数据传输协议


2.2 系统实现

控制命令的数据量比较小,且要求传输可靠性高,实时性好,在对单台和多台服务器控制过程中使用灵活,数据文件也要求传输的高可靠性,因此本系统在传输层选择TCP协议。基于TCP协议的Winsock技术是C/S模型中的核心技术,有阻塞和非阻塞两种方式。阻塞方式使用简单,当收发函数在被调用后一直要等到传输完毕或出错才能返回,阻塞期间,除了等待网络操作的完成不能进行任何操作;非阻塞方式又称异步方式,数据收发函数调用后立即返回,当网络传输完成后,Winsock给应用程序发送一个消息,通知操作完成,可以根据发送的消息传出的参数判断操作是否正常,这种方式下,关键的问题是如何确定网络事件何时发生。Winsock提供了一种WSAEventSelect异步L/O模型,它是经由事件对象句柄通知的,允许应用程序在一个或者多个套接字上接收基于事件的网络通知,接收FD_XXX类型的网络事件。

另外,利用多线程进行程序设计时,要充分考虑到并发性、安全性等问题,才能提高程序及系统的效率。在Windows环境提供的一系列同步措施中,事件对象是比较灵活的,有受信和非受信两种状态,只有事件对象受信才能激活线程工作。

下面代码示例了服务器端利用Winsock技术以异步方式接收到控制命令,按定义的协议对命令进行解释,触发线程执行相应的采集操作。



3 结束语

本系统根据Winsock编程原理,结合多线程编程技术,针对外场光电测控设备实现的远程测控系统,通过在专用工具软件中添加相应的远程控制命令,实现了不能或不适合直接由人工完成的操作,既可以提高效率又可以减少不必要的人员伤亡,在实际应用中效果良好。这也为外场测控系统的网络化奠定基础。


 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢