1 引言
随着人类社会的数字化、信息化和自动化,电子元器件在国防行业中的使用越来越频繁,担负的任务也越来越重要。电子元器件的选用及装配的正确关系到整个系统能否正常运转,几乎与器件本身的性能同等重要,如何保证元器件数据的准确性及可靠性保证技术已经成为当前产品全生命周期管理的一个极为重要的研究方向。
产品全生命周期管理(Product Lifecycle Management,简称PLM)系统是保证数据完整、准确的管理工具,已经在军工行业中起到了越来越大的作用,在电气数据管理方面形成一套完整的从元器件选择和使用、元器件评审、采购、检测与筛选、供方控制、入库、保管、出库、发放,到元器件失效分析、处理,到完成电装和调试的采购、调试、管理体系。
但是随着电气设计、仿真技术的不断进步,电气设计将趋向整体化、交叉化和综合化。这些变化虽然为电气学科的发展提供了有利的环境,推动了电气设备向智能化方向发展,但是越来越多的生产任务以及交叉的业务需求变更,对元器件的数据管理以及后端进行的采购、齐套、装配造成了很大的麻烦。为了更有效地提高数据的可靠性,完整性,完成元器件选用及采购的控制,需要建立一个能够自动控制的机制来完成这一功能目标。
一般在电路设计软件中,都有元器件汇总的功能,但是通过此功能汇总出的数据并不能直接指导生产和采购,需要根据各企业要求再次腾写到其他软件打印出来。本文通过对PLM系统的二次开发,能够快捷并准确地汇总所选用的元器件。
2 Teamcenter8平台系统架构简介及所遇到的问题
Teamcenter8平台是全球著名的服务和软件咨询公司西门予(Siemens)的产品。它是一个集成解决方案,以产品为中心,以项目管理为手段,覆盖了产品生命周期的各种活动,以管理结果为中心,进行各类业务数据的管理并实现相应的管理思想。Teamcenter8平台的二次开发包括两种方式:一种为服务器端(ITK),以C或C++开发为主,特点是部署方便,效率较高,通常用于较大数量数据的提取及流程的应用;另一种是客户端的开发(RC),以JAVA为主,基于Eclipse平台进行插件开发,开发方式灵活。本文将重点关注客户端的开发如何满足元件目录表灵活的开发需求。
一般的企业在进行电路设计结果的管理时,将电路设计的完整设计工程包交设计师保存,使用时再进行调用。使用PLM系统管理后,设计流程变更为,设计时通过在软件中选取PLM系统中元器件信息组成产品结构,设计完成后打包上传,在系统中完成电子化审签后归档,在指导物资采购及生产加工装配时根据上传的产品结构进行物资齐套及生产。在进行开发时发现很多问题,图纸信息不全导致汇总出的数据不准确,必须根据企业标准化要求进行导出,最终还是通过制度层面的约束及技术上的实现解决了这些问题。
3 实现原理
Item是Teamcenter8中的基本数据模型,如图1所示。一般是产品的组成部分(整机/整件/部件/零件/标准件/元器件)或者是其它的数据(技术文档,工艺规程,工程更改等)。Item下的数据一般是用于版本控制的数据,版本上的信息是可跟踪的,可恢复的,或者是用于具有产品结构(Bill Of Material,简称BOM)的产品。
图1 元器件Item基本结构
在功能开发过程中,企业会制定纸质管理时所存在的数据模板,用于统一设计规程及标准化的需要。PLM系统可以随时随地对电子化的产品结构进行器件信息提取及汇总,高速准确反应产品结构的更改,快速指导齐套及装配工作。为了尽可能地降低业务流程变更给设计师带来的变化,将产品数据按照企业所需模板进行开发定制。
Teamcenter8采用基于Eclipse平台的RCP(Rich Client Platform)插件进行技术开发,使用扩展点增加菜单项,通过后台调用JAVA程序进行处理输出,以Teamcenter8系统自带的API及相关API实现所需要的功能。
根据需要分为四个主要的功能模块进行设计:产品结构根对象及其整体子结构数据的获取,对获取到的数据处理及排序,注入Excel中,对于上述三种业务逻辑,可以把程序划分为“顶层产品结构获取”、“产品数据处理”、“注入Excel”三个模块进行设计。
为了满足企业不断变化的需求及元器件标准修订带来的重复开发,系统在设计时采用了基于首选项配置的开发方式,通过调用首选项中的元器件类别条目,可根据企业需要汇总出各类元器件信息及变更元器件汇总表中的元器件类型数据,灵活地进行汇总。
4 实现方式
在Teamcenter8进行客户端的开发,包括两个步骤:程序注册以使系统识别、程序开发实现逻辑。
4.1 程序注册
程序注册的目的就是要让Teamcenter8的平台能够识别当前开发内容。只需要在在客户化程序包com\teamcenter\RAP\common\actions目录下新建一个客户化的名为actions_user.properties注册文件,添加代码完成对程序的注册即可。
4.2 编写程序逻辑
程序注册完成后,需要在Eclipse开发平台下完成元件目录表程序逻辑的编制,以完成元件目录表的汇总功能。
4.2.1 顶层产品结构获取
程序的入口在客户端结构管理器菜单中,点击注册时加入的菜单“元件目录表”,自动开始工作:初始化对象AbstRAPtBOMLineViewerApplication与TCSession;首先定义对象Tree,用于获取树状结构BOMTreeTable Tree=app.getViewableTreeTable(),获取BOM行所对应的Item TCComponentltem relltem=selectedLine.getltem();根据该Item的版本获取该版本的表单属性TCComponentForm relltemVerMaster=(TCComponentForm)relltemVer.getRelatedComponent(“IMAN—master_ form_ rev”)。
4.2.2 产品数据处理
获取顶层产品结构及连接关系后,进行预数据处理。首先获取连接状态及选中的BOM行YJReport yjReport=new YJReport(selectedLine,session);接下来对数据属性进行提取,定义Vector<vtKeys>存放数据属性名,递归获取选中行下的所有只要是元器件对象类型的对象:yjReport.getYJDatas(selectedLine.getChildren());然后获取器件属性:ArrayList<HashMap<String,Object>>yjDatas=yjReport.handlerYJDatas();最后对获取到的元器件数据进行分类,并进行处理:ArrayList<HashMap<String,Object>>yjDatas=yjReport.handlerYJDatas()。
4.2.2.1 按照系统配置的首选项对数据进行归类
首选获取元器件的分类属性,确定元器件的分类方式,获取分类属性后itemRevision.getClassificationClass(),对前七位进行处理,然后根据“Cetc20一Class_ame_And-Id”系统首选项进行分类顺序的排序,组成HashMap<String,Object>的成对对象,然后输出resultDatas.put(className,arrList)。
4.2.2.2 对获取的产品结构进行排序
根据获取的arrList属性条目,根据产品结构的BOM行的备注即元器件位号进行排序。首先按照位号第一位字母排序,再按照阿拉伯数字排序,如C1~C24等信息进行排序。最后按照className再次拆分为分条,并在分类中增加空行addNuIILine,组成最终所需要的对HashMap<String,Object>。
4.2.3 注入Excel
获取数据集对象TCComponentDatasetTypedsType=(TCComponentDatasetType)session.getTypeComponent(“Dataset”);根据数据集对象获取系统内定义的模板TempleDS =dsType.find(“”);获取Excel物理文件template(File[] TempleFile=TempleDS.getFiles(“”));将属性对象依次写入Excel: HSSFRow row=sheet.getRow((short) NUM),HSSFCell cell=row.getCell((short)2)。
5 应用效果
本功能已经通过了一定的压力测试,在某企业曾经成功获取过1000个器件的元件目录表,如图2所示,耗时Smin,且配置灵活,只需通过修改首选项即可完成规则的修改,代替了手工编辑元件目录表时繁琐的工作量,较大地提高了采购和生产的效率。
图2 功能实现效果
6 结束语
在Teamcenter8平台的基础上,运用Java、Eclipse、POI等多种技术对Teamcenter8进行开发,实现了元件目录表的数据导入。在这个功能的辅助下,优化了原有纸质化管理时的流程,优化了产品速度,提高了采购及装配的速度,提供了统一的产品数据管理源。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/