资源预览内容
第1页 / 共40页
第2页 / 共40页
第3页 / 共40页
第4页 / 共40页
第5页 / 共40页
第6页 / 共40页
第7页 / 共40页
第8页 / 共40页
第9页 / 共40页
第10页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
基于代理的自动工艺实现方案,背景代理方案,背景,概念:CIMS:计算机集成制造系统CAPP:计算机辅助工艺规划或设计 CAD:计算机辅助设计CAM:计算机辅助制造MIS:管理信息系统MAS:制造自动化系统CAQ:质量保证系统,结构图,CIMS,应具有如下的性能:它应作为/集成设计辅助的工具来工作 ,即自动地从工程 (产品设计 )方面获得输入数据 ,并且产生出一整套工艺规程 ,供编制生产计划和生产、材料、质量控制等使用 ;它应为加工的指令安排、生产计划调度、工资单计算和材料发放等提供基本数据 ;它应是适合于不同零件种类的通用化设计 ;,它应具有一个能充分利用计算机潜力的交互式在线处理系统 ;它应具有便利的用户界面 ,并为操作人员提供指南 ;系统是模块化、结构化的 ,以便容易扩展 ,修理和维护 ;与其生产设备一样 ,它应具有经济性。,传统CAPP的主要困难研制周期长适应性差实用性差低水平重复 提出基于代理的CAPP 采用目前较为先进的代理技术,自动工艺是CAPP系统的核心部分,自动工艺模块性能直接影响整个系统的性能。通过代理技术来实现自动工艺过程是目前较为先进的技术。在自动工艺流程上,一般有四个主要的模块:输入器、生成器、审查器以及批准器。 它们分别是用四个代理类来实现的。因此,相应的四个代理类分别是:输入器代理类、生成器代理类、审查器代理类以及批准器代理类。,代理,代理概念及其性质代理池概念及其机制,代理概念及其性质,概念:是一类在特定环境下能感知环境,并能自治地运行以代表其设计者或使用者实现一系列目标的计算实体或程序。 从软件实现角度,它是一个计算机程序,通过预定义的协议(公用语言)与外部Agent进行通信。 代理和对象的区别在于代理的自主性和协作性。,Agent的四个最基本特性:针对环境性、反应性、自治性、面向目标性。虽然还可有移动性、社会性、学习性等其它特性,但只要具备了上述四个特性就可以认为它是一个Agent,我们将这样的Agent称为最小Agent。 在最小Agent的基础上,根据各自的应用情况还可再拥有其的特性,从而将Agent分成不同的种类:如自治Agent、软件Agent、移动Agent等。,代理池概念及其机制,概念:是一个负责调度代理的载入与卸载,响应代理之间发送的事件以及做出相应的处理,而且保存每个代理的相关信息以及能够恢复保存的信息的容器。,代理池机制,代理,代理,代理,代理,代理池功能装载/卸载代理处理代理之间通信保存/恢复代理信息监视代理工作情况,方案,谈谈我们目前项目提出星型工艺模型,谈谈我们目前项目,概述:我们目前正在做的项目(即“天工”项目)主要包括三大模块: 系统管理模块 项目管理模块 自动工艺模块我们小组做的是自动工艺模块,工艺流模型图,图中箭头意义,任务成功提交,任务成功反馈,任务出错反馈,谁操作?白色箭头:用户操作完成粉红色箭头:系统自动完成红色箭头:用户操作完成,?,工艺层次,专业工艺生成代理处完成,工艺路线生成代理完成,任务结构,分类编码信息,工艺路线生成信息,工艺路线审查信息,工艺路线批准信息,专业工艺生成信息,专业工艺审查信息,任务基本信息,专业工艺批准信息,任务基本信息,任务ID,任务名称,文档ID,零件ID,零件图号,分类编码信息,零件编码,工艺路线生成信息,典型零件,用户名称,任务状态,零件名称,工艺路线组合,工艺路线审查信息,审查人名称,审查密码,审查意见,工艺路线批准信息,批准人名称,批准密码,批准意见,专业工艺审查信息,专业工艺组合,专业工艺生成信息,审查人名称,审查密码,审查意见,专业工艺批准信息,批准人名称,批准密码,批准意见,任务活动过程,任务基本信息,任务分配信息,任务及前面代理信息,分类编码信息,工艺路线生成信息,任务及前面代理信息,传递,传递,提交,传递,提交,提交,新建,任务,专业工艺批准代理,数据库,提取信息,写入数据库,读取信息,写入信息,成功反馈信息,传递,提交,删除任务,提出星型工艺模型,提出: 前面采用链式结构把各代理链接在一起。 此种结构缺点:插入/删除节点困难,即不具有扩展性; 为此提出星型结构。,工艺流程分为四大类(分类编码、工艺生成、工艺审查和工艺批准)以及任务分配。 因此,星型结构如下实现: (1)前面四类用节点代理来实现; (2)任务分配用中枢代理来实现。 能够灵活地添加/删除节点代理。,星型模型结构图,批准器代理类,审查器代理类,生成器代理类,输入器代理类,中枢代理,注:1.各代理类:节点代理2.红色虚框内:实体代理,工艺层次,任务结构,节点代理外部结构,节点代理,信息,事件,接收,发送,接收,发送,注:事件:接收(未做工艺的)任务事件与发送(做完工艺 的)任务事件;信息: 在任务结构中相应的字段,由这个代理填写此字段信息。,节点代理内部结构,功能模块,工艺层次,添加,工艺层次,功能模块,添加,注:各类节点代理在内部结构上不同,体现在功能模块上不同;同类节点代理的不同实体内部结构相同,体现在功能模块上相同,但是工艺层次的数目不一致,从而它们也体现出不同。,中枢代理,任务1,任务2,任务n,提取任务功能模块,新建任务,添加/删除节点代理功能模块,节点代理1,节点代理2,节点代理n,控制任务结构功能模块,来源于系统设置,注:代理池不负责代理之间通信,由中枢代理接管;中枢代理负责添加/删除节点代理;,添加节点代理结构示图,添加代理类,添加实体代理,添加节点代理算法,public void addNodeTypeAgent(String typeName,int typeID,Vector taskField)/添加一个新节点类型代理backboneAgent bbAgent=(backboneAgent)agentPool.getBackboneAgent();/从代理池中获得中枢代理Hashtable nodeTypeAgentList=(Hashtable)bbAgent.getNodeTypeAgentList(); /从中枢代理中获得节点类型代理列表nodeTypeAgentList.add(typeID,typeName);/在节点类型代理列表中添加指定的新节点类型代理Hashtable taskFabricList=(Hashtable)bbAgent.getTaskFabricList();/从中枢代理中获得任务结构列表taskFabricList.add(typeID,taskField);/在任务结构列表中添加指定的新节点类型代理的任务字段,public void addNodeEntityAgent(String name,int ID,int typeID,Vector taskField)/添加已存在的节点类型代理的一个节点实体代理backboneAgent bbAgent=(backboneAgent)agentPool.getBackboneAgent();/从代理池中获得中枢代理if(!(bbAgent.existNodeTypeAgent(typeID)return;/判断是否存在此种节点类型代理,若不存在则返回Hashtable nodeTypeAgentList=(Hashtable)bbAgent.getNodeTypeAgentList(); /从中枢代理中获得节点类型代理列表 Hashtable nodeEntityAgentList=(Hashtable)bbAgent.getNodeEntityAgentList();/从中枢代理中获得节点实体代理列表nodeEntityAgentList.add(ID,name);/在节点实体代理中添加新节点实体代理Hashtable taskEntityList=(Hashtable)bbAgent.getTaskEntityList();/从中枢代理中获得任务列表Vector v=(Vector)nodeTypeAgentList.get(typeID)Enumeration e=v.elements();while(e.hasMoreElements()String str=(String)e.nextElement(); taskEntityList.add(name+_+str,);/在任务实体列表中添加指定的新节点实体代理的任务字段,初始值置空Agent newAgent=new Agent(name);/用指定名称构造一个新代理agentPool.addAgent(newAgent);/把这个新代理添加到代理池中,删除节点代理,删除代理类,删除实体代理,删除节点代理算法,public void delNodeTypeAgent(int typeID)/删除一个新节点类型代理backboneAgent bbAgent=(backboneAgent)agentPool.getBackboneAgent();/从代理池中获得中枢代理if(bbAgent.existNodeEntityAgent(typeID)return;/判断是否存在此种节点类型代理的节点实体代理,若存在则返回Hashtable nodeTypeAgentList=(Hashtable)bbAgent.getNodeTypeAgentList(); /从中枢代理中获得节点类型代理列表nodeTypeAgentList.remove(typeID);/在节点类型代理列表中删除指定的新节点类型代理Hashtable taskFabricList=(Hashtable)bbAgent.getTaskFabricList();/从中枢代理中获得任务结构列表taskFabricList.remove(typeID);/在任务结构列表中删除指定的新节点类型代理的任务字段,public void delNodeEntityAgent(String name,int ID,int typeID)/删除已存在的节点类型代理的一个节点实体代理backboneAgent bbAgent=(backboneAgent)agentPool.getBackboneAgent();/从代理池中获得中枢代理Hashtable nodeEntityAgentList=(Hashtable)bbAgent.getNodeEntityAgentList();/从中枢代理中获得节点实体代理列表nodeEntityAgentList.remove(ID);/在节点实体代理中删除指定ID的节点实体代理Hashtable taskEntityList=(Hashtable)bbAgent.getTaskEntityList();/从中枢代理中获得任务列表Vector v=(Vector)nodeTypeAgentList.keys();Enumeration e=v.elements();while(e.hasMoreElements()String str=(String)e.nextElement();if(includeKey(name)taskEntityList.remove(str); /函数includeKey用来判断关键字str中是否存在name前缀,若存在则删除agentPool.delAgent(name);/在代理池中删除指定名称的代理,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号