1 引言
隨著人類(lèi)社會(huì)的數(shù)字化、信息化和自動(dòng)化,電子元器件在國(guó)防行業(yè)中的使用越來(lái)越頻繁,擔(dān)負(fù)的任務(wù)也越來(lái)越重要。電子元器件的選用及裝配的正確關(guān)系到整個(gè)系統(tǒng)能否正常運(yùn)轉(zhuǎn),幾乎與器件本身的性能同等重要,如何保證元器件數(shù)據(jù)的準(zhǔn)確性及可靠性保證技術(shù)已經(jīng)成為當(dāng)前產(chǎn)品全生命周期管理的一個(gè)極為重要的研究方向。
產(chǎn)品全生命周期管理(Product Lifecycle Management,簡(jiǎn)稱(chēng)PLM)系統(tǒng)是保證數(shù)據(jù)完整、準(zhǔn)確的管理工具,已經(jīng)在軍工行業(yè)中起到了越來(lái)越大的作用,在電氣數(shù)據(jù)管理方面形成一套完整的從元器件選擇和使用、元器件評(píng)審、采購(gòu)、檢測(cè)與篩選、供方控制、入庫(kù)、保管、出庫(kù)、發(fā)放,到元器件失效分析、處理,到完成電裝和調(diào)試的采購(gòu)、調(diào)試、管理體系。
但是隨著電氣設(shè)計(jì)、仿真技術(shù)的不斷進(jìn)步,電氣設(shè)計(jì)將趨向整體化、交叉化和綜合化。這些變化雖然為電氣學(xué)科的發(fā)展提供了有利的環(huán)境,推動(dòng)了電氣設(shè)備向智能化方向發(fā)展,但是越來(lái)越多的生產(chǎn)任務(wù)以及交叉的業(yè)務(wù)需求變更,對(duì)元器件的數(shù)據(jù)管理以及后端進(jìn)行的采購(gòu)、齊套、裝配造成了很大的麻煩。為了更有效地提高數(shù)據(jù)的可靠性,完整性,完成元器件選用及采購(gòu)的控制,需要建立一個(gè)能夠自動(dòng)控制的機(jī)制來(lái)完成這一功能目標(biāo)。
一般在電路設(shè)計(jì)軟件中,都有元器件匯總的功能,但是通過(guò)此功能匯總出的數(shù)據(jù)并不能直接指導(dǎo)生產(chǎn)和采購(gòu),需要根據(jù)各企業(yè)要求再次騰寫(xiě)到其他軟件打印出來(lái)。本文通過(guò)對(duì)PLM系統(tǒng)的二次開(kāi)發(fā),能夠快捷并準(zhǔn)確地匯總所選用的元器件。
2 Teamcenter8平臺(tái)系統(tǒng)架構(gòu)簡(jiǎn)介及所遇到的問(wèn)題
Teamcenter8平臺(tái)是全球著名的服務(wù)和軟件咨詢公司西門(mén)予(Siemens)的產(chǎn)品。它是一個(gè)集成解決方案,以產(chǎn)品為中心,以項(xiàng)目管理為手段,覆蓋了產(chǎn)品生命周期的各種活動(dòng),以管理結(jié)果為中心,進(jìn)行各類(lèi)業(yè)務(wù)數(shù)據(jù)的管理并實(shí)現(xiàn)相應(yīng)的管理思想。Teamcenter8平臺(tái)的二次開(kāi)發(fā)包括兩種方式:一種為服務(wù)器端(ITK),以C或C++開(kāi)發(fā)為主,特點(diǎn)是部署方便,效率較高,通常用于較大數(shù)量數(shù)據(jù)的提取及流程的應(yīng)用;另一種是客戶端的開(kāi)發(fā)(RC),以JAVA為主,基于Eclipse平臺(tái)進(jìn)行插件開(kāi)發(fā),開(kāi)發(fā)方式靈活。本文將重點(diǎn)關(guān)注客戶端的開(kāi)發(fā)如何滿足元件目錄表靈活的開(kāi)發(fā)需求。
一般的企業(yè)在進(jìn)行電路設(shè)計(jì)結(jié)果的管理時(shí),將電路設(shè)計(jì)的完整設(shè)計(jì)工程包交設(shè)計(jì)師保存,使用時(shí)再進(jìn)行調(diào)用。使用PLM系統(tǒng)管理后,設(shè)計(jì)流程變更為,設(shè)計(jì)時(shí)通過(guò)在軟件中選取PLM系統(tǒng)中元器件信息組成產(chǎn)品結(jié)構(gòu),設(shè)計(jì)完成后打包上傳,在系統(tǒng)中完成電子化審簽后歸檔,在指導(dǎo)物資采購(gòu)及生產(chǎn)加工裝配時(shí)根據(jù)上傳的產(chǎn)品結(jié)構(gòu)進(jìn)行物資齊套及生產(chǎn)。在進(jìn)行開(kāi)發(fā)時(shí)發(fā)現(xiàn)很多問(wèn)題,圖紙信息不全導(dǎo)致匯總出的數(shù)據(jù)不準(zhǔn)確,必須根據(jù)企業(yè)標(biāo)準(zhǔn)化要求進(jìn)行導(dǎo)出,最終還是通過(guò)制度層面的約束及技術(shù)上的實(shí)現(xiàn)解決了這些問(wèn)題。
3 實(shí)現(xiàn)原理
Item是Teamcenter8中的基本數(shù)據(jù)模型,如圖1所示。一般是產(chǎn)品的組成部分(整機(jī)/整件/部件/零件/標(biāo)準(zhǔn)件/元器件)或者是其它的數(shù)據(jù)(技術(shù)文檔,工藝規(guī)程,工程更改等)。Item下的數(shù)據(jù)一般是用于版本控制的數(shù)據(jù),版本上的信息是可跟蹤的,可恢復(fù)的,或者是用于具有產(chǎn)品結(jié)構(gòu)(Bill Of Material,簡(jiǎn)稱(chēng)BOM)的產(chǎn)品。
圖1 元器件Item基本結(jié)構(gòu)
在功能開(kāi)發(fā)過(guò)程中,企業(yè)會(huì)制定紙質(zhì)管理時(shí)所存在的數(shù)據(jù)模板,用于統(tǒng)一設(shè)計(jì)規(guī)程及標(biāo)準(zhǔn)化的需要。PLM系統(tǒng)可以隨時(shí)隨地對(duì)電子化的產(chǎn)品結(jié)構(gòu)進(jìn)行器件信息提取及匯總,高速準(zhǔn)確反應(yīng)產(chǎn)品結(jié)構(gòu)的更改,快速指導(dǎo)齊套及裝配工作。為了盡可能地降低業(yè)務(wù)流程變更給設(shè)計(jì)師帶來(lái)的變化,將產(chǎn)品數(shù)據(jù)按照企業(yè)所需模板進(jìn)行開(kāi)發(fā)定制。
Teamcenter8采用基于Eclipse平臺(tái)的RCP(Rich Client Platform)插件進(jìn)行技術(shù)開(kāi)發(fā),使用擴(kuò)展點(diǎn)增加菜單項(xiàng),通過(guò)后臺(tái)調(diào)用JAVA程序進(jìn)行處理輸出,以Teamcenter8系統(tǒng)自帶的API及相關(guān)API實(shí)現(xiàn)所需要的功能。
根據(jù)需要分為四個(gè)主要的功能模塊進(jìn)行設(shè)計(jì):產(chǎn)品結(jié)構(gòu)根對(duì)象及其整體子結(jié)構(gòu)數(shù)據(jù)的獲取,對(duì)獲取到的數(shù)據(jù)處理及排序,注入Excel中,對(duì)于上述三種業(yè)務(wù)邏輯,可以把程序劃分為“頂層產(chǎn)品結(jié)構(gòu)獲取”、“產(chǎn)品數(shù)據(jù)處理”、“注入Excel”三個(gè)模塊進(jìn)行設(shè)計(jì)。
為了滿足企業(yè)不斷變化的需求及元器件標(biāo)準(zhǔn)修訂帶來(lái)的重復(fù)開(kāi)發(fā),系統(tǒng)在設(shè)計(jì)時(shí)采用了基于首選項(xiàng)配置的開(kāi)發(fā)方式,通過(guò)調(diào)用首選項(xiàng)中的元器件類(lèi)別條目,可根據(jù)企業(yè)需要匯總出各類(lèi)元器件信息及變更元器件匯總表中的元器件類(lèi)型數(shù)據(jù),靈活地進(jìn)行匯總。
4 實(shí)現(xiàn)方式
在Teamcenter8進(jìn)行客戶端的開(kāi)發(fā),包括兩個(gè)步驟:程序注冊(cè)以使系統(tǒng)識(shí)別、程序開(kāi)發(fā)實(shí)現(xiàn)邏輯。
4.1 程序注冊(cè)
程序注冊(cè)的目的就是要讓Teamcenter8的平臺(tái)能夠識(shí)別當(dāng)前開(kāi)發(fā)內(nèi)容。只需要在在客戶化程序包c(diǎn)om\teamcenter\RAP\common\actions目錄下新建一個(gè)客戶化的名為actions_user.properties注冊(cè)文件,添加代碼完成對(duì)程序的注冊(cè)即可。
4.2 編寫(xiě)程序邏輯
程序注冊(cè)完成后,需要在Eclipse開(kāi)發(fā)平臺(tái)下完成元件目錄表程序邏輯的編制,以完成元件目錄表的匯總功能。
4.2.1 頂層產(chǎn)品結(jié)構(gòu)獲取
程序的入口在客戶端結(jié)構(gòu)管理器菜單中,點(diǎn)擊注冊(cè)時(shí)加入的菜單“元件目錄表”,自動(dòng)開(kāi)始工作:初始化對(duì)象AbstRAPtBOMLineViewerApplication與TCSession;首先定義對(duì)象Tree,用于獲取樹(shù)狀結(jié)構(gòu)BOMTreeTable Tree=app.getViewableTreeTable(),獲取BOM行所對(duì)應(yīng)的Item TCComponentltem relltem=selectedLine.getltem();根據(jù)該Item的版本獲取該版本的表單屬性TCComponentForm relltemVerMaster=(TCComponentForm)relltemVer.getRelatedComponent(“IMAN—master_ form_ rev”)。
4.2.2 產(chǎn)品數(shù)據(jù)處理
獲取頂層產(chǎn)品結(jié)構(gòu)及連接關(guān)系后,進(jìn)行預(yù)數(shù)據(jù)處理。首先獲取連接狀態(tài)及選中的BOM行YJReport yjReport=new YJReport(selectedLine,session);接下來(lái)對(duì)數(shù)據(jù)屬性進(jìn)行提取,定義Vector<vtKeys>存放數(shù)據(jù)屬性名,遞歸獲取選中行下的所有只要是元器件對(duì)象類(lèi)型的對(duì)象:yjReport.getYJDatas(selectedLine.getChildren());然后獲取器件屬性:ArrayList<HashMap<String,Object>>yjDatas=yjReport.handlerYJDatas();最后對(duì)獲取到的元器件數(shù)據(jù)進(jìn)行分類(lèi),并進(jìn)行處理:ArrayList<HashMap<String,Object>>yjDatas=yjReport.handlerYJDatas()。
4.2.2.1 按照系統(tǒng)配置的首選項(xiàng)對(duì)數(shù)據(jù)進(jìn)行歸類(lèi)
首選獲取元器件的分類(lèi)屬性,確定元器件的分類(lèi)方式,獲取分類(lèi)屬性后itemRevision.getClassificationClass(),對(duì)前七位進(jìn)行處理,然后根據(jù)“Cetc20一Class_ame_And-Id”系統(tǒng)首選項(xiàng)進(jìn)行分類(lèi)順序的排序,組成HashMap<String,Object>的成對(duì)對(duì)象,然后輸出resultDatas.put(className,arrList)。
4.2.2.2 對(duì)獲取的產(chǎn)品結(jié)構(gòu)進(jìn)行排序
根據(jù)獲取的arrList屬性條目,根據(jù)產(chǎn)品結(jié)構(gòu)的BOM行的備注即元器件位號(hào)進(jìn)行排序。首先按照位號(hào)第一位字母排序,再按照阿拉伯?dāng)?shù)字排序,如C1~C24等信息進(jìn)行排序。最后按照className再次拆分為分條,并在分類(lèi)中增加空行addNuIILine,組成最終所需要的對(duì)HashMap<String,Object>。
4.2.3 注入Excel
獲取數(shù)據(jù)集對(duì)象TCComponentDatasetTypedsType=(TCComponentDatasetType)session.getTypeComponent(“Dataset”);根據(jù)數(shù)據(jù)集對(duì)象獲取系統(tǒng)內(nèi)定義的模板TempleDS =dsType.find(“”);獲取Excel物理文件template(File[] TempleFile=TempleDS.getFiles(“”));將屬性對(duì)象依次寫(xiě)入Excel: HSSFRow row=sheet.getRow((short) NUM),HSSFCell cell=row.getCell((short)2)。
5 應(yīng)用效果
本功能已經(jīng)通過(guò)了一定的壓力測(cè)試,在某企業(yè)曾經(jīng)成功獲取過(guò)1000個(gè)器件的元件目錄表,如圖2所示,耗時(shí)Smin,且配置靈活,只需通過(guò)修改首選項(xiàng)即可完成規(guī)則的修改,代替了手工編輯元件目錄表時(shí)繁瑣的工作量,較大地提高了采購(gòu)和生產(chǎn)的效率。
圖2 功能實(shí)現(xiàn)效果
6 結(jié)束語(yǔ)
在Teamcenter8平臺(tái)的基礎(chǔ)上,運(yùn)用Java、Eclipse、POI等多種技術(shù)對(duì)Teamcenter8進(jìn)行開(kāi)發(fā),實(shí)現(xiàn)了元件目錄表的數(shù)據(jù)導(dǎo)入。在這個(gè)功能的輔助下,優(yōu)化了原有紙質(zhì)化管理時(shí)的流程,優(yōu)化了產(chǎn)品速度,提高了采購(gòu)及裝配的速度,提供了統(tǒng)一的產(chǎn)品數(shù)據(jù)管理源。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴(lài)品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:基于Teamcenter8平臺(tái)的元件匯總表功能開(kāi)發(fā)
本文網(wǎng)址:http://www.ezxoed.cn/html/solutions/1401939344.html