关键词:网络
2 使用CORBA规范的多智能体系统建模实现
2.1CORBA概述
支持分布式系统的规范比较成熟的有OMG的CORBA标准、Microsoft的组件对象模型 /分布式组件对象模型 (Component Object Model/Distributed Com,COM/DCOM)、SUN公司的JAVA远程方法调用 (Remote Method Invocation,RMI)标准,一起形成了分布计算领域的主流。其中CORBA规范较好的解决了实时问题、可扩展和跨平台操作问题,故我们选择 CORBA作为支持网络化控制系统的规范。
CORBA规范是国际对象管理组织 (Object Management Group,OMG)发布的基于分布对象技术的公共对象请求代理结构 (common object request broker architecture,CORBA)。CORBA规范的核心是“对象请求代理”(object requestbroker,ORB) ,其结构见图2。

CORBA具备跨语言和跨平台支持能力,可以在WINDOWS NT、WINDOWS 2000、WINDOWS XP、SOLARIS、UNIX等操作系统下运行,可以在基于X86、SPARC、PA-RISC、POWERPC 等结构的计算机系统上运行,OMG还为它定义了面向对象编程语言如C++、JAVA等的映射。用户用IDL(Interface Define Language)编写IDL文件,定义操作分布式对象的接口。CORBA编译器在为客户端生成动态调用接口或静态调用的Stubs,他们给出对应编程语 言类型的分布式对象的信息,客户端将这些信息封装在一个对象内并称这个对象为分布式对象接口的代理(proxy);在服务器端生成静态或动态 Skeleton和对象适配器。在服务器端构成接口对象的对象实现类,可以实例化SERVER OBJECT,并建立相应的POA管理本地的SERVER OBJECT。服务器端和客户端通过对象引用进行通讯。客户端对远程对象的访问和操作信息,通过对象代理经由对象代理传递给服务器端,服务器端在通过 POA找到相应的OBJECT从而完成实际的调用,在将操作结果返回给对象代理,进而传回客户端[1]。
2.2 使用CORBA规范的智能体模型实现方法
使用CORBA规范对智能体进行建模,实现方法的好坏对整个控制系统的性能有着直接的影响。在CORBA中使用由一系列具有特定功能的对象组合成的构件组来实现智能体的建模,对于下面系统的整体建模和多智能体系统的开放性和可伸缩性有重要的意义。
智能体内的协作管理模块是各智能体间的互操作算法和协作关系在本地的体现。CORBA使用的IDL语言描述的分布式对象的接口是各智能体之间互操作的接口 的功能、参数以及返回值类型的描述,描述的结果以IDL文件的形式保存,只要从相同的IDL文件映射出来,不论其实现语言,算法有何不同,都可以被相同类 型的接口调用。IDL是一种说明性语言,不能编写实际的应用程序。CORBA允许应用程序以不同的编程语言来实现,并且实现中的执行逻辑和算法可由用户进 行改写。
智能体内的通讯管理和网络接口管理智能体间的通讯接口,必须符合支持网络化制造的控制系统的CORBA分布运行环境要求和接口定义。CORBA构件对象与 CORBA中的对象请求代理 (ORB)联系,取得所需的信息进行访问和操作。而对于非CORBA系统的智能体或者不能使用TCP/IP协议的现场智能节点,CORBA提供一种网关 (Gateway)机制来保证非CORBA系统或者不具备TCP/IP协议的智能节点与CORBA实现的智能体之间的通讯。对于不具备TCP/IP协议的 智能节点(如现场总线的各节点或串口通讯的数控机床),通常采用上位机作为物理中介,上位机使用CORBA对象封装本地对其他协议的通讯操作来实现各种其 他协议与CORBA之间的网关。对于非CORBA系统的对象,CORBA在编译时无法确定对象信息,CORBA系统在构件库的支持下提供动态调用接口 (DII)和动态骨架接口(DSI),在运行时根据对象请求动态的选择调用的对象和对象的实现,构成网关。网关接受来自非CORBA系统的信息,使用 DII来调用CORBA系统的对象提供的操作;使用DSI接受其他的CORBA系统的调用请求,并将相应的数据和请求传递给非CORBA系统。[7,8]
2.3 支持网络化制造的控制系统的体系实现
系统根据各智能体在联系和操作的对象的不同分为三个层次:用户层、执行层、控制层。用户层包括用户和 人机界面,执行层包括系统进行各项分布控制功能的分析和计算的智能体和维护分布式系统的智能体。控制层是系统的各项分布控制的状态反馈和功能执行智能体, 它直接控制和驱动现场的各种加工设备、传感器,使用资源管理和数据文档管理软件等。各层次之间的关系是逻辑上的功能调用关系。各智能体的通讯是通过分布式 运行环境进行的,所有的执行层和控制层的智能体都可以通过各自的接口,直接从分布式运行环境中取得所需的信息。
系统的构成图如图3所示,并根据系统的结构图规划出部分智能体的功能:

人机界面智能体,负责调用和协调执行层的各智能体,执行层的各项智能体,根据指令对控制层中的智能体进行操作,从而驱动各功能实体完成功能的任务。
加工监控智能体,完成对数控系统的监控,返回运行加工的状态,在必要时提供给用户通过人机界面之际对数控操作的能力。
构件注册智能体,作为CORBA的分布是系统管理工具接口可以增添删除和浏览系统需要的智能体间操作的IDL接口定义。提供具有相同或类似接口的对象组中不同逻辑和实现的对象的管理功能。
现场设备智能体,负责本机的初始化,在构件库中注册,使执行层的智能体可以取得可用的现场设备信息,并调用其按指令运行,完成现场功能。
我们可以看出,具有复杂结构的支持网络化制造的控制系统,已经构造成结构简单清晰、易于实现的分散控制模型结构;同时由于智能体结构的特点和CORBA规范及其提供的管理接口,我们可以保证系统的开放性,功能上配置的灵活性。