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.guhuozai8.cn/