摘要:提出了一种适合快速响应特点的支持网络化制造的控制系统的功能模型,为了满足开放性,可重构能力和系统配置的灵活性要求,系统地论述了使用多智能体系统模型简化系统结构的原理和实现方法,给出了基于 CORBA规范的控制实验系统结构构成和功能划分,通过监控模块的实现证明了采用面向对象的编程技术和CORBA 规范实现支持网络制造化的控制系统的方法的可行性。
关键词:多智能体代理系统; CORBA;网络化制造
中图分类号:TH166 文献标识码:A
The Research On Approach Of Networked Manufacturing Control Demo System based on CORBA
Yu Zheng, Qiang Liu
BeiHang University, Beijing, P. R. China
ABSTRACT: This paper proposes a methods of modeling Networked Manufacturing control system, which is capable of quick responses. To archive the opening reconfiguration and the scalability, the article systematically expounds the theories and the methods of using the Multi-Agent system model to simplify the system structure, tells the demo system structure and the function modules, proves the feasibility of realizing the Networked Manufacturing system with OOP methods in CORBA specification..
Key Words: Multi-Agent system CORBA Networked manufacturing Control system
引言
现代制造业要求具备快速响应研制、快速试制的能力,以缩短产品的研制周期,降低成本。网络化制造作为可提供快速响应研制能力的一种制造模式,受到各国高度重视,它以数字化、柔性化、敏捷化为基本特征,表现为结构上的分布性、组织上的快速动态可重构性、执行上的并行性以及时间上的快速响应。作为支持制造网络中的底层制造设备的系统 /单元控制技术,支持网络化制造的控制系统研究是网络化制造的核心技术之一。 支持网络化制造的控制系统,应满足以下条件: 1)在网络化制造的底层,实现对制造过程各种设备(包括加工设备、测试设备等)的控制、维护,并可以根据生产任务需要,快速实现柔性生产线的组线和任务调度;2)在网络化制造的上层,直接支持单个设备或生产线联网,构成网络化制造系统中的子系统,并可方便接入Intranet和Internet,支持多领域专家联合、异地对系统安装、调试、改进,并实现制造过程和制造设备的异地控制和监测。
支持网络化制造的控制系统需处理来自生产计划系统和生产加工现场的信息,协调控制制造系统中的物流和信息流。在功能方面,支持网络化制造的控制系统可以与生产管理信息系统、产品设计系统等子系统结合,构成网络化制造系统。支持网络化制造的控制系统具有系统的安装维护、重构、数据和信息的获取、异地仿真、调试诊断等功能,以完成快速构建柔性生产线以投入试制和生产所必经的系统安装配置、调试改进、仿真监控等任务。在结构方面,支持网络化制造的控制系统主要解决网络制造系统的异构性问题,支持各种设备的独立入网。支持网络化制造的控制系统提出网络化制造系统的接口规范,使处于不同平台不同操作系统下具有不同通讯方式的节点,只要其具有符合该规范的通讯接口就可以透明的接入系统。
研究了支持网络化制造的控制系统在结构和功能上的特点,本文针对支持网络化制造的控制系统的实现方法展开研究,通过建立一个具有上述结构和功能特点的实验系统,验证使用多智能体代理结构对支持网络化制造的控制系统进行建模简化,以 CORBA规范作为对象接口规范,以VC++和ORBIX作为开发工具,实现支持网络化制造的控制系统的实现方法的可行性和实现过程。
1 基于多智能体系统的网络化控制系统模型
1.1多智能体系统概述
90年代以来 ,对多智能体系统的研究已经成为分布式人工智能领域的研究热点。智能体(Agent)是一种具有自主性、交互性、反应性、主动性的高度自治的实体。自主性,可以控制它自身的行为,能够用各自的软件和实现方法保证运行,具有局部的知识库或推理决策功能,可控制内部的状态和动作;交互性,拥有其他智能体的信息和知识,能通过某种方式与其它智能体交互通讯、协调与合作;反应性,能够感知和理解周围的环境,并对环境的变化作出响应,具有传感功能;主动性,采取主动行动,表现出有目标的行为,并通过行为改变周围环境或影响其他智能体[5]。
1.2 支持网络化制造的控制系统的多智能体建模
根据支持网络化制造的控制系统的功能要求,按照合适的粒度将支持网络化制造的控制系统中的现场设备、功能模块等进行合理的归类和分化,抽象成一系列功能实体,用多智能体系统来对控制系统进行建模,以智能体来实现各功能实体。智能体的典型结构示意图如图1所示:
图1 智能体的典型结构示意图
智能体协作管理和通讯管理模块执行各智能体之间的协作关系和信息交互的指令;网络接口,封装本地的通讯接口和协议等,对外提供符合规范要求的通讯接口,与分布式环境进行交互;任务规划模块执行智能体内部的决策推理和算法,表述内部的智能和知识;本地接口用于控制和调用被封装的功能实体的原有功能。各智能体之间的协作关系抽象为两种基本协作模型:“对等”协作模型和“主 -从”协作模型。“对等”模型中,各智能体之间具有等同的感知和协调能力,协作管理相对复杂。 “主 -从”模型中,主控智能体处主导地位和作用,感知和协同主要限于“主 -从”之间,协同关系简单[2]。支持网络化制造的控制系统就是各智能体依照对等模式或主从模式,根据系统的分布式特点,将各智能体所能和所需要提供的协作和服务,在协作管理模块中分别加以实现,从而使系统的结构得以简化。
多智能体系统中的每个智能体可以独立完成各自的工作,并且通过它们之间的相互通信与协调达成系统整体的目标。利用这种技术建立的系统具有分布、开放、智能等一系列特性,在局部自治的基础上能够实现全局优化。支持网络化制造的控制系统由于分布式的数据和知识、开放式和分布式控制的要求,不能用传统的集中控制模型或“自顶向下”的分层递阶模型来表述。它的全局目标和过程控制,与多智能体系统相互作用的过程自然吻合。采用多智能体协作来解决,多智能体按照特定的协作关系并行完成自己的局部来实现一共同目标任务。整个系统不是各个智能体的简单叠加,而是同步运行的多个智能体求解个体所不能解决的问题的松散耦合网络。nextpage
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。
图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所示,并根据系统的结构图规划出部分智能体的功能:
图3 支持网络化制造的控制系统多智能体体系示意图nextpage
人机界面智能体,负责调用和协调执行层的各智能体,执行层的各项智能体,根据指令对控制层中的智能体进行操作,从而驱动各功能实体完成功能的任务。
加工监控智能体,完成对数控系统的监控,返回运行加工的状态,在必要时提供给用户通过人机界面之际对数控操作的能力。
构件注册智能体,作为CORBA的分布是系统管理工具接口可以增添删除和浏览系统需要的智能体间操作的IDL接口定义。提供具有相同或类似接口的对象组中不同逻辑和实现的对象的管理功能。
现场设备智能体,负责本机的初始化,在构件库中注册,使执行层的智能体可以取得可用的现场设备信息,并调用其按指令运行,完成现场功能。
我们可以看出,具有复杂结构的支持网络化制造的控制系统,已经构造成结构简单清晰、易于实现的分散控制模型结构;同时由于智能体结构的特点和CORBA规范及其提供的管理接口,我们可以保证系统的开放性,功能上配置的灵活性。
3 实验系统实例
图4 实验系统结构示意图
按图4所示结构搭建实验系统,并选取其中的加工监控智能体为例来说明这种实现方法。在实验系统中以符合CORBA规范的ORBIX软件包建立局域网内分布式环境并以IDL文件的形式确定智能体的接口定义,ORBIX对IDL接口进行编译,在VC++6.0集成编译环境下编写程序,实现对GT400SV运动控制器驱动的X-Y工作台的操作,返回工作台在运动过程中各控制轴的状态,实现分布式环境上的用户对X-Y工作台的监控。其IDL文件的一部分如下:
interface Monicontrl {
short Open(in unsigned long Portbase,in unsigned long irq);
short Close();
short Setaddr(in unsigned short Address);
short SetAtlPos(in long Pos);
short GetPos(inout long Pos);
short GetVel(inout double Vel);
short GetAcc(inout double Acc);
short GetMAcc(inout double Macc);
short GetJerk(inout double Jerk);
short GetRatio(inout double Ratio);
…
};
4 结论
支持网络制造的控制系统,采用多智能代理模型和 CORBA规范对其进行建模,保证了系统具有良好的开放性、可重构性和易集成性。使用符合CORBA标准的ORBIX编译器和软件包来实现IDL语言到C++的映射,使用VC++6.0的集成编译环境来实现支持网络化制造的控制系统的软件构件和功能模块,提供了用户在接口实现上的灵活性。通过对接口进行扩充和接口对象的再定义,实现系统功能的重组和扩充。同时支持网络化制造的控制系统为实现企业连续信息流以及企业信息全集成提供了有效的解决方案,同时也为网络化制造应用的深层次推广打下了良好的基础。


