摘要:介绍了一种基于Web Service组件的工业机器人远程控制系统的软件设计过程。对控制系统的组成和软件体系结构进行了论述,详细讨论了Web Service中控制逻辑的设计过程,并给出了一个应用实例。
关键词:远程控制,Web Service,机器人
1、引言
随着Internet应用的发展,远程控制越来越受到人们的重视,基于Internet技术的远程控制平台已经成为互联网应用开发的一个新热点。作为一种全新的网络控制模式,基于Web Service的远程控制从出现伊始就表现出强大的生命力,它以其特有的平台无关、容易通过Internet防火墙等特点赢得了用户的青睐。本文研究了一套基于Web Service组件的控制系统,实现了对工业机器人的远程运动控制。
2、系统整体设计

图2 控制系统软件结构

基于Web Service的机器人远程工业控制系统结构如图1所示。本系统的硬件采用深圳固高科技有限公司提供的工业机器人、接口控制箱和GT系列运动控制器。该运动控制器可以同步控制四个运动轴,实现机器人多轴协调运动。其核心由ADSP2181数字信号处理器和FPGA组成,可以实现高性能的控制计算。GT系列运动控制器以IBM-PC及其兼容机为主机,提供标准的PCI总线接口,并提供C语言函数库和Windows动态链接库(DLL),实现复杂的控制功能。用户能够将这些控制函数与自己控制系统所需的数据处理、界面显示、用户接口等应用程序模块集成在一起,建造符合特定应用要求的控制系统,以适应各种应用领域的要求。
本系统在软件上采用三层体系结构,在Web层中,客户端浏览器通过HTTP协议访问Web页面完成对工业机器人的远程控制操作,Web页面主要用于输入控制指令和参数,然后Web层通过SOAP协议与Web Service组件通信。Web Service组件主要用于封装控制逻辑指令,调用机器人运动控制驱动接口,通过接口控制箱直接驱动机器人运动。系统中的网络视频协作软件的主要作用是通过摄像头实时监视机器人的运动位置,反馈给用户以便及时调整控制指令和参数。由于HTTP协议和SOAP协议是标准的Internet协议,可以穿过防火墙,因此基于Web Service的远程控制系统可以在真正意义上完全实现Internet上的网络控制。
3 Web Service组件设计
Web Service是一种现代软件组件技术,它采用XML格式封装数据,采用Internet通用协议WSDL完成自身功能的描述,使用UDDI实现注册和定位,使用SOAP协议完成数据传输,具有跨平台能力和跨语言能力。不论在何种平台上,不论用何种语言开发的客户端,只需了解Web Service的输入、输出和位置,就可以通过SOAP协议调用它。Web Service可以理解为一种部署在Web上的组件或对象,它对外暴露一组接口,客户端可以通过SOAP协议在Internet上远程调用这些接口,并获取返回值。尽管传统的分布式组件技术,如DCOM、CORBA、EJB也能实现远程调用,但是因为它们使用的通信协议不是Internet通用协议,不能通过防火墙,因而不能在Internet上部署。并且,它们是由不同的公司或组织提出的,采用不同的接口和规范,彼此之间不能相互兼容,因而导致平台依赖性大,跨平台交互能力差,只能在对等体系结构间进行通信。
本文将机器人智能控制逻辑模块设计成Web Service组件,让客户端调用组件中提供的控制逻辑和Web方法,使不同的操作者可以在任何平台和任何语言开发的客户端上,都能够通过Internet控制机器人。在本文中,采用ASP.NET开发了Web Service的客户端页面,把客户端的控制信号以字符串类型的参数形式传递给Web Service,然后Web Service调用机器人运动控制接口板卡的库函数(本系统中是GT400.dll),进一步达到控制机器人的目的。图2是控制系统软件结构。

图3 机器人操作界面
在.NET Framework中直接对工业机器人接口板卡进行底层硬件编程是一个技术难点。本文采用互操作(DllImport)的方式,在Web Service组件中引入运动控制器驱动接口DLL函数库,可以解决这一问题。在本系统采用的三层架构中,使用ASP.NET开发了Web控制界面,采用C#语言,调用工业机器人运动控制器的底层编程接口API,并将机器人四轴联动的优化算法等控制逻辑封装在Web Service组件中。另外,为了完成工业机器人四轴联动的优化控制,本文采用多线程的方式对四个轴进行同时驱动,从而提高控制的效率和实时性。
在设计Web Service组件时,首先需要引入名字空间System.Runtime.InteropServices,然后使用该名字空间中的函数DllImport导入运动控制器的DLL函数库,即DllImport("GT400.dll"),再逐一声明库函数中要用到的具体函数,如打开运动控制器设备private static extern short GT_Open()等。将这些函数组成的代码封装在Web Method方法中,就形成了Web Service组件对外提供的远程方法。Web Service组件成功部署后,客户端ASP.NET程序首先查询UDDI注册表,定位到该组件,通过“添加Web引用”建立与Web Service的联系。编译后系统即根据Web Service的WSDL文件自动在本地生成了Web Service的代理类。随之客户端程序可以像使用本地对象一样使用代理类对象,由代理类对象负责与实际的远程Web Service对象以SOAP协议进行通讯,然后Web Service完成相应的控制逻辑指令。当客户端程序提供轴号和运动速度参数后,就能有效使用此Web service组件对机器人实现远程控制。在这个过程中,如何发送调用请求,传输请求信息,解析请求信息,执行实际代码,返回请求结果的步骤都被很好地封装起来,设计者只需考虑要传递什么请求和如何处理请求结果就足够了。图3是机器人操作的ASP.NET界面,图4是机器人手臂运动场景。
4 结束语
本文研究的基于Web Service的远程控制系统,简化了工业自动化的体系结构,增强了网络控制的功能和效率,提高了远程控制的整体性和稳定性,真正实现了自动化系统的网络化、智能化、数字化,为工业自动化系统和信息家电行业提供Internet解决方案具有积极的意义。目前这种方案尚存在如下问题需要解决:
(1)可靠性和实时性还不完善,施加的控制指令具有一定的时间延迟。主要用于实时性要求不太高的远程控制场合。
(2)通过视频协作系统尚不能实现精确的坐标定位和控制,需要通过机器视觉和智能控制算法进一步提高系统的控制精度。
参考文献
[1] Microsoft公司著,XML Web Services技术内幕,北京:清华大学出版社,2003
[2]Tingxin Song, Jianmin Xiong, et al. Implementing Distributed Simulations in Grid Computing Environments, 2004 Intl. Symposium on Distributed Computing and Applications to Business, Engineering and Science.
[3]固高科技(深圳)有限公司,GT系列工业机器人运动控制器编程手册,2003


