《[精选]代理的自动工艺实现方案.pptx》由会员分享,可在线阅读,更多相关《[精选]代理的自动工艺实现方案.pptx(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于代理的自开工艺实现方案背景代理方案背景概念:l lCIMS:计算机集成制造系统l lCAPP:计算机辅助工艺规划或设计 l lCAD:计算机辅助设计l lCAM:计算机辅助制造l lMIS:管理信息系统l lMAS:制造自动化系统l lCAQ:质量保证系统CADCAD/CAPP/CAMCAPPCAMCAQMISMAS结构图CIMS应具有如下的性能:它应作为/集成设计辅助的工具来工作,即自动地从工程 产品设计 方面获得输入数据,并且产生出一整套工艺规程,供编制生产方案和生产、材料、质量控制等使用;它应为加工的指令安排、生产方案调度、工资单计算和材料发放等提供基本数据;它应是适合于不同零件种类
2、的通用化设计;它应具有一个能充分利用计算机潜力的交互式在线处理系统;它应具有便利的用户界面,并为操作人员提供指南;系统是模块化、结构化的,以便容易扩展,修理和维护;与其生产设备一样,它应具有经济性。传统CAPP的主要困难l l研制周期长l l适应性差l l实用性差l l低水平重复 提出基于代理的CAPP 采用目前较为先进的代理技术自开工艺是CAPP系统的核心局部,自开工艺模块性能直接影响整个系统的性能。通过代理技术来实现自开工艺过程是目前较为先进的技术。在自开工艺流程上,一般有四个主要的模块:输入器、生成器、审查器以及批准器。它们分别是用四个代理类来实现的。因此,相应的四个代理类分别是:输入器
3、代理类、生成器代理类、审查器代理类以及批准器代理类。代理代理概念及其性质代理池概念及其机制代理概念及其性质概念:是一类在特定环境下能感知环境,并能自治地运行以代表其设计者或使用者实现一系列目标的计算实体或程序。从软件实现角度,它是一个计算机程序,通过预定义的协议公用语言与外部Agent进行通信。代理和对象的区别在于代理的自主性和协作性。Agent的四个最基本特性:针对环境性、反响性、自治性、面向目标性。虽然还可有移动性、社会性、学习性等其它特性,但只要具备了上述四个特性就可以认为它是一个Agent,我们将这样的Agent称为最小Agent。在最小Agent的基础上,根据各自的应用情况还可再拥有
4、其的特性,从而将Agent分成不同的种类:如自治Agent、软件Agent、移动Agent等。代理池概念及其机制概念:是一个负责调度代理的载入与卸载,响应代理之间发送的事件以及做出相应的处理,而且保存每个代理的相关信息以及能够恢复保存的信息的容器。代理池机制代理代理代理代理代理池功能装载/卸载代理处理代理之间通信保存/恢复代理信息监视代理工作情况方案谈谈我们目前工程提出星型工艺模型谈谈我们目前工程l l概述:我们目前正在做的工程即“天工工程主要包括三大模块:系统管理模块 工程管理模块 自开工艺模块我们小组做的是自开工艺模块 l l工艺流模型图工艺路线审查代理任务分配代理工艺路线生成代理分类编码
5、代理工艺路线批准代理专业工艺生成代理专业工艺审查代理专业工艺批准代理图中箭头意义图中箭头意义任务成功提交任务成功反响任务出错反响谁操作?白色箭头:用户操作完成粉红色箭头:系统自动完成红色箭头:用户操作完成l l工艺层次工艺路线工作中心工步专业工艺生成代理处完成工艺路线生成代理完成n任务结构分类编码信息工艺路线生成信息工艺路线审查信息工艺路线批准信息专业工艺生成信息专业工艺审查信息任务基本信息专业工艺批准信息p任务基本信息任务ID任务名称文档ID零件ID零件图号p分类编码信息零件编码p工艺路线生成信息典型零件用户名称任务状态零件名称工艺路线组合p工艺路线审查信息审查人名称审查密码审查意见p工艺路
6、线批准信息批准人名称批准密码批准意见p专业工艺审查信息专业工艺组合p专业工艺生成信息审查人名称审查密码审查意见p专业工艺批准信息批准人名称批准密码批准意见n任务活动过程任务基本信息任务分配信息任务及前面代理信息分类编码信息工艺路线生成信息任务及前面代理信息工艺路线生成代理任务分配代理分类编码代理任务任务任务传递传递提交传递提交提交新建任务专业工艺批准代理数据库提取信息写入数据库读取信息写入信息成功反响信息传递提交删除任务提出星型工艺模型l l提出:前面采用链式结构把各代理链接在一起。此种结构缺点:插入/删除节点困难,即不具有扩展性;为此提出星型结构。工艺流程分为四大类分类编码、工艺生成、工艺审
7、查和工艺批准以及任务分配。因此,星型结构如下实现:1前面四类用节点代理来实现;2任务分配用中枢代理来实现。能够灵活地添加/删除节点代理。l星型模型结构图批准器代理类审查器代理类生成器代理类输入器代理类中枢代理注:1.各代理类:节点代理2.红色虚框内:实体代理工艺层次层次1层次2层次n任务结构任务基本信息信息字段节点代理1节点代理n信息字段l l节点代理外部结构节点代理信息事件接收发送接收发送注:事件:接收未做工艺的任务事件与发送做完工艺事件:接收未做工艺的任务事件与发送做完工艺 的任务事件;的任务事件;信息信息:在任务结构中相应的字段,由这个代理填写此字段在任务结构中相应的字段,由这个代理填写
8、此字段信息。信息。节点代理内部结构功能模块工艺层次添加工艺层次功能模块添加注:各类节点代理在内部结构上不同,表达在功能模块上不同;各类节点代理在内部结构上不同,表达在功能模块上不同;同类节点代理的不同实体内部结构相同,表达在功能模块同类节点代理的不同实体内部结构相同,表达在功能模块上相同,但是工艺层次的数目不一致,从而它们也表达出上相同,但是工艺层次的数目不一致,从而它们也表达出不同。不同。中枢代理任务1任务2任务n提取任务功能模块新建任务添加/删除节点代理功能模块节点代理1节点代理2节点代理n控制任务结构功能模块来源于系统设置注:代理池不负责代理之间通信,由中枢代理接管;中枢代理负责添加/删
9、除节点代理;l添加节点代理结构示图添加代理类添加实体代理添加节点代理算法public void addNodeTypeAgentpublic void addNodeTypeAgentString typeName,int typeID,Vector taskFieldString typeName,int typeID,Vector taskField/添加一个新节点类型代理添加一个新节点类型代理backboneAgent bbAgent=backboneAgent bbAgent=backboneAgentbackboneAgentagentPool.getBackboneAgentage
10、ntPool.getBackboneAgent;/从代理池中获得中枢代理从代理池中获得中枢代理Hashtable nodeTypeAgentList=Hashtable nodeTypeAgentList=HashtableHashtablebbAgent.getNodeTypeAgentListbbAgent.getNodeTypeAgentList;/从中枢代理中获得节点类型代理列表从中枢代理中获得节点类型代理列表nodeTypeAgentList.addnodeTypeAgentList.addtypeID,typeNametypeID,typeName;/在节点类型代理列表中添加指定的
11、新节点类型代理在节点类型代理列表中添加指定的新节点类型代理Hashtable taskFabricList=Hashtable taskFabricList=HashtableHashtablebbAgent.getTaskFabricListbbAgent.getTaskFabricList;/从中枢代理中获得任务结构列表从中枢代理中获得任务结构列表taskFabricList.addtaskFabricList.addtypeID,taskFieldtypeID,taskField;/在任务结构列表中添加指定的新节点类型代理的任务字段在任务结构列表中添加指定的新节点类型代理的任务字段 pu
12、blic void addNodeEntityAgentpublic void addNodeEntityAgentString name,int ID,int typeID,Vector taskFieldString name,int ID,int typeID,Vector taskField/添加已存在的节点类型代理的一个节点实体代理添加已存在的节点类型代理的一个节点实体代理backboneAgent bbAgent=backboneAgent bbAgent=backboneAgentbackboneAgentagentPool.getBackboneAgentagentPool.g
13、etBackboneAgent;/从代理池中获得中枢代理从代理池中获得中枢代理if if!bbAgent.existNodeTypeAgentbbAgent.existNodeTypeAgenttypeIDtypeIDreturn;return;/判断是否存在此种节点类型代理,假设不存在则返回判断是否存在此种节点类型代理,假设不存在则返回Hashtable nodeTypeAgentList=Hashtable nodeTypeAgentList=HashtableHashtablebbAgent.getNodeTypeAgentListbbAgent.getNodeTypeAgentList
14、;/从中枢代理中获得节点类型代理列表从中枢代理中获得节点类型代理列表 Hashtable nodeEntityAgentList=Hashtable nodeEntityAgentList=HashtableHashtablebbAgent.getNodeEntityAgentListbbAgent.getNodeEntityAgentList;/从中枢代理中获得节点实体代理列表从中枢代理中获得节点实体代理列表nodeEntityAgentList.addnodeEntityAgentList.addID,nameID,name;/在节点实体代理中添加新节点实体代理在节点实体代理中添加新节点实
15、体代理Hashtable taskEntityList=Hashtable taskEntityList=HashtableHashtablebbAgent.getTaskEntityListbbAgent.getTaskEntityList;/从中枢代理中获得任务列表从中枢代理中获得任务列表Vector v=Vector v=VectorVectornodeTypeAgentList.getnodeTypeAgentList.gettypeIDtypeIDEnumeration e=v.elementsEnumeration e=v.elements;whilewhilee.hasMoreE
16、lementse.hasMoreElements String str=String str=StringStringe.nextElemente.nextElement;taskEntityList.add taskEntityList.addname+_+str,name+_+str,;/在任务实体列表中添加指定的新节点实体代理的任务字段,初始值置空在任务实体列表中添加指定的新节点实体代理的任务字段,初始值置空Agent newAgent=new AgentAgent newAgent=new Agentnamename;/用指定名称构造一个新代理用指定名称构造一个新代理agentPool
17、.addAgentagentPool.addAgentnewAgentnewAgent;/;/把这个新代理添加到代理池中把这个新代理添加到代理池中 l删除节点代理删除代理类删除实体代理删除节点代理算法删除节点代理算法public void delNodeTypeAgentpublic void delNodeTypeAgentint typeIDint typeID/删除一个新节点类型代理删除一个新节点类型代理backboneAgent bbAgent=backboneAgent bbAgent=backboneAgentbackboneAgentagentPool.getBackboneAg
18、entagentPool.getBackboneAgent;/从代理池中获得中枢代理从代理池中获得中枢代理if ifbbAgent.existNodeEntityAgentbbAgent.existNodeEntityAgenttypeIDtypeIDreturn;return;/判断是否存在此种节点类型代理的节点实体代理,假设存在则返回判断是否存在此种节点类型代理的节点实体代理,假设存在则返回Hashtable nodeTypeAgentList=Hashtable nodeTypeAgentList=HashtableHashtablebbAgent.getNodeTypeAgentLis
19、tbbAgent.getNodeTypeAgentList;/从中枢代理中获得节点类型代理列表从中枢代理中获得节点类型代理列表nodeTypeAgentList.removenodeTypeAgentList.removetypeIDtypeID;/在节点类型代理列表中删除指定的新节点类型代理在节点类型代理列表中删除指定的新节点类型代理Hashtable taskFabricList=Hashtable taskFabricList=HashtableHashtablebbAgent.getTaskFabricListbbAgent.getTaskFabricList;/从中枢代理中获得任务结
20、构列表从中枢代理中获得任务结构列表taskFabricList.removetaskFabricList.removetypeIDtypeID;/在任务结构列表中删除指定的新节点类型代理的任务字段在任务结构列表中删除指定的新节点类型代理的任务字段 public void delNodeEntityAgentpublic void delNodeEntityAgentString name,int ID,int typeIDString name,int ID,int typeID/删除已存在的节点类型代理的一个节点实体代理删除已存在的节点类型代理的一个节点实体代理backboneAgent b
21、bAgent=backboneAgent bbAgent=backboneAgentbackboneAgentagentPool.getBackboneAgentagentPool.getBackboneAgent;/从代理池中获得中枢代理从代理池中获得中枢代理Hashtable nodeEntityAgentList=Hashtable nodeEntityAgentList=HashtableHashtablebbAgent.getNodeEntityAgentListbbAgent.getNodeEntityAgentList;/从中枢代理中获得节点实体代理列表从中枢代理中获得节点实体代
22、理列表nodeEntityAgentList.removenodeEntityAgentList.removeIDID;/在节点实体代理中删除指定在节点实体代理中删除指定IDID的节点实体代理的节点实体代理Hashtable taskEntityList=Hashtable taskEntityList=HashtableHashtablebbAgent.getTaskEntityListbbAgent.getTaskEntityList;/从中枢代理中获得任务列表从中枢代理中获得任务列表Vector v=Vector v=VectorVectornodeTypeAgentList.keysn
23、odeTypeAgentList.keys;Enumeration e=v.elementsEnumeration e=v.elements;whilewhilee.hasMoreElementse.hasMoreElements String str=String str=StringStringe.nextElemente.nextElement;if ifincludeKeyincludeKeynamenametaskEntityList.removetaskEntityList.removestrstr;/函数函数includeKeyincludeKey用来判断关键字用来判断关键字strstr中是否存在中是否存在namename前缀,假设存在则删除前缀,假设存在则删除agentPool.delAgentagentPool.delAgentnamename;/在代理池中删除指定名称的代理在代理池中删除指定名称的代理 以后的工作实现代理的移动性增强代理的智能性进一步完善星型模型的功能
限制150内