潘勇
【摘 要】本文分析了Teamcenter平臺客戶端二次開發(fā)的關(guān)鍵技術(shù),對物料清單的二次開發(fā)進(jìn)行研究,開發(fā)了BOM自動生成功能模塊,使之能自動生成符合企業(yè)需求的BOM,并與Teamcenter平臺無縫集成,保障產(chǎn)品BOM信息的一致性和規(guī)范性,提高企業(yè)產(chǎn)品數(shù)據(jù)管理效率及質(zhì)量,并為將來BOM在企業(yè)各部門間的傳遞及轉(zhuǎn)換打下堅(jiān)實(shí)基礎(chǔ)。
【關(guān)鍵詞】產(chǎn)品生命周期管理;Teamcenter平臺;二次開發(fā);物料清單
【Abstract】The paper analyzes and illustrates the key technology of application development in Teamcenter platform client, and application development of BOM functions is studied, developed BOM automatic generation function module, it can automatically generate BOM, this function can count up the data to meet the requirements, and embedded Teamcenter platform. It ensures the consistency and normative of the BOM information, and improves the efficiency and quality of product data management, and lay a solid foundation for the transfer and transformation of BOM in different departments in the future.
【Key words】PLM; Teamcenter platform; application development; Bill of Materials(BOM)
0 引言
隨著人們對單一數(shù)據(jù)源認(rèn)識度的提升,產(chǎn)品研制人員逐步發(fā)現(xiàn)了產(chǎn)品研制階段各個(gè)環(huán)節(jié)之間數(shù)據(jù)關(guān)聯(lián)的重要性,產(chǎn)品全生命周期管理(Product Lifecycle Management,PLM)也孕育而生。PLM系統(tǒng)是覆蓋了從產(chǎn)品誕生到消亡的產(chǎn)品全過程的、開放的、互操作的一整套應(yīng)用方案[1]。PLM系統(tǒng)不僅僅是一套軟件、一個(gè)系統(tǒng),更是一種先進(jìn)的管理思想,迎合了目前國內(nèi)眾多企業(yè)消滅藍(lán)圖或紙質(zhì)工程圖,規(guī)范基礎(chǔ)數(shù)據(jù),共享產(chǎn)品數(shù)據(jù),為企業(yè)實(shí)施和推廣智能制造打下扎實(shí)的基礎(chǔ)。
物料清單(Bill?of?Materials,BOM)是構(gòu)成一個(gè)物料項(xiàng)的所有子物料項(xiàng)的清單,其主要目的是體現(xiàn)產(chǎn)品結(jié)構(gòu)和產(chǎn)品配置,用來反映產(chǎn)品零部件之間裝配的層次關(guān)系及相關(guān)屬性,是PLM、ERP 等信息化系統(tǒng)中最重要的基礎(chǔ)數(shù)據(jù)之一,貫穿于整個(gè)設(shè)計(jì)、制造過程[2]。
Teamcenter平臺軟件是當(dāng)前主流的PLM系統(tǒng)軟件之一,盡管它的BOM管理功能非常強(qiáng)大,但每個(gè)企業(yè)的實(shí)際狀況及需求都不一樣,因此,二次開發(fā)是PLM系統(tǒng)實(shí)施過程中必不可少的一個(gè)環(huán)節(jié)。本文通過基于Teamcenter的客戶端二次開發(fā)的方法,來解決這些企業(yè)特定需求,同時(shí)也為后續(xù)基于Teamcenter平臺的二次開發(fā)提供借鑒。
1 BOM的結(jié)構(gòu)和特點(diǎn)及企業(yè)BOM管理現(xiàn)狀分析
1.1 BOM結(jié)構(gòu)和特點(diǎn)
BOM用來描述產(chǎn)品零部件組成和零部件之間的相互關(guān)系,以及每個(gè)部件所需要的各子部件的數(shù)量,是制造企業(yè)中最重要的產(chǎn)品數(shù)據(jù)之一[3]。BOM是一種樹型結(jié)構(gòu),稱為產(chǎn)品結(jié)構(gòu)樹,如圖1所示。利用這些數(shù)據(jù)之間的層次關(guān)系,可以生成不同形式、格式和結(jié)構(gòu)的物料清單,以滿足不同類型的應(yīng)用需求。
產(chǎn)品BOM 是PLM、ERP 等信息化系統(tǒng)中最重要的基礎(chǔ)數(shù)據(jù),是各系統(tǒng)之間信息共享和集成的關(guān)鍵數(shù)據(jù)之一。產(chǎn)品BOM首先產(chǎn)生于產(chǎn)品設(shè)計(jì)階段,貫穿于整個(gè)產(chǎn)品生命周期,從產(chǎn)品研發(fā)一直到售后服務(wù)、報(bào)廢終止使用。合理規(guī)劃及管理各部門的BOM,是實(shí)現(xiàn)產(chǎn)品全局?jǐn)?shù)據(jù)統(tǒng)一的基礎(chǔ),是企業(yè)實(shí)現(xiàn)制造信息化的前提[4]。
1.2 企業(yè)BOM管理現(xiàn)狀分析
BOM的準(zhǔn)確性、有效性,不同形式BOM之間的一致性,BOM的更新等一直是制造企業(yè)產(chǎn)品數(shù)據(jù)管理中的難題。主要表現(xiàn)在:(1)手工創(chuàng)建及維護(hù)BOM,缺乏BOM表的自動生成等基本功能,各部門經(jīng)常投入大量的人力、物力管理BOM;(2)各種BOM都是以Excel文件的形式,雜亂無序地存在于不同部門的計(jì)算機(jī)系統(tǒng)中,彼此之間缺乏必要的關(guān)聯(lián),以至于無法在一個(gè)部門獲取準(zhǔn)確的、最新的及有效的產(chǎn)品BOM,也無法保證這些數(shù)據(jù)能在整個(gè)企業(yè)范圍內(nèi)得到充分的共享;(3)產(chǎn)品數(shù)據(jù)管理基礎(chǔ)薄弱,業(yè)務(wù)流程管理不夠規(guī)范,部門職責(zé)不清,無明確的職能部門管理及維護(hù)BOM,等等。
2 Teamcenter客戶端BOM二次開發(fā)
Teamcenter 平臺的二次開發(fā)分為客戶端和服務(wù)器端兩部分,客戶端的二次開發(fā)應(yīng)用Java 語言,服務(wù)器端的二次開發(fā)采用集成工具包(Integrated Tool Kit,ITK)和C 語言。本文采用Java 語言,基于Eclipse平臺進(jìn)行插件開發(fā),主要包括開發(fā)環(huán)境的設(shè)置、注冊程序、菜單定制、調(diào)用模板、BOM生成及導(dǎo)出等操作[5]。
2.1 獲取Teamcenter中的應(yīng)用程序
獲取Teamcenter中的應(yīng)用程序,即結(jié)構(gòu)管理器(PSE)應(yīng)用程序,代碼如下:
2.2 獲取PSE中的BOMLine對象
在獲取結(jié)構(gòu)管理器及TCSession 之后,可以根據(jù)PSE獲取需要的BOMLine,一般情況下有兩種獲取BOMLine 的選擇方式,一種是直接在代碼中獲取PSE中首行BOMLine,再根據(jù)算法來獲取所需要的BOMLine,代碼如下:
另一種是獲取選中的BOMLine行,讓后遍歷其子零部件,代碼如下:
2.3 獲取零/部件的屬性信息
BOM生成的主要步驟:1)獲取PSE中BOMLine屬性,這是BOMLine的固有屬性,如“bl_quantity”表明當(dāng)前BOMLine對象的數(shù)量,這些在PSE中可以進(jìn)行添加或者修改;2)獲取BOMLine所對應(yīng)的零/部件版本(Item Revision)本身的屬性,如企業(yè)定制的圖號“z4_DrawingNo”等屬性,這些信息可以通過getStringProperty()等方法獲得。代碼如下:
這樣,BOM生成過程中所需要的信息分別通過不同的辦法進(jìn)行獲取,滿足了進(jìn)行BOM生成的需要。
2.4 遍歷PSE中所有零部件
BOM生成需要遍歷產(chǎn)品的整個(gè)產(chǎn)品樹結(jié)構(gòu),所以需要遍歷PSE中的所有零部件,其代碼的基本思路如下:
(1)首先獲取頂層裝配的下一層(定義為第二層)的所有子對象,將其存放在數(shù)組bomlines[]中;
(2)使用if條件語句,判斷第二層中的所有子對象是否還有子零件,若有則重新調(diào)用(1)中的方法獲取其結(jié)構(gòu);
(3)依此類推,直至獲取整個(gè)裝配結(jié)構(gòu)。
2.5 調(diào)用Excel模板,并將零/部件屬性信息寫入模板中
根據(jù)企業(yè)的實(shí)際需求,定制特有的BOM模板,調(diào)用模板并將值寫入文件中。代碼如下:
2.6 把BOM保存至頂層或選定對象版本下
為了BOM數(shù)據(jù)統(tǒng)一管理及維護(hù),需要將所生產(chǎn)的BOM,添加到Bomline對應(yīng)的對象下,跟隨對象一起進(jìn)行審簽、發(fā)布及變更等。具體代碼如下:
2.7 保存后打開BOM
為了方便快速查看,在完成添加后,打開已生成的BOM。
3 應(yīng)用實(shí)例
3.1 BOM生成過程
在實(shí)際應(yīng)用中,需要將BOM以Excel格式輸出,并自動加載到相應(yīng)的零部件版本下,與零部件的三維模型、二維工程圖等數(shù)據(jù)一下完成審簽流程,最終發(fā)布。在Teamcenter中BOM生成的流程如圖2所示。
3.2 Teamcenter中實(shí)現(xiàn)
筆者參與了公司PLM系統(tǒng)的建設(shè),以Teamcenter8.3、NX8.5 為軟件平臺,數(shù)據(jù)庫為Oracle,以Eclipse4.3、JDK1.7為開發(fā)環(huán)境,應(yīng)用Java語言進(jìn)行BOM二次開發(fā)。
BOM生成的過程如下:
(1)啟動Teamcenter,集成環(huán)境下啟動NX設(shè)計(jì)軟件,開始設(shè)計(jì)工作;
(2)零部件設(shè)計(jì)完成后,將其頂層部件發(fā)送到Teamcenter結(jié)構(gòu)管理器中,BOM生成菜單界面如圖3所示:
(3)通過菜單,自動生成BOM,并將BOM 以Excel 格式輸出。如下圖4所示:
(4)通過二次開發(fā),將生成的BOM加載到相應(yīng)的零部件版本下(如下圖5所示),與零部件一起完成審簽流程,并實(shí)現(xiàn)自動電子簽字,保證了BOM的有效性,精確性。將來若產(chǎn)品結(jié)構(gòu)發(fā)生變更,則只需再次生成BOM,即可更新BOM。且可通過Teamcenter自帶的BOM功能,進(jìn)行兩次BOM結(jié)構(gòu)的比較,快速找到不同點(diǎn)。
4 結(jié)語
本文主要探討了企業(yè)BOM管理問題,介紹了Teamcenter二次開發(fā)的有關(guān)技術(shù),以及基于該平臺BOM二次開發(fā)的詳細(xì)方法,此功能已成功應(yīng)用于企業(yè),滿足了企業(yè)對產(chǎn)品數(shù)據(jù)管理的需求,極大地提高企業(yè)的效率,為該企業(yè)的產(chǎn)品數(shù)據(jù)的統(tǒng)一有序管理打下了堅(jiān)實(shí)的基礎(chǔ)。
【參考文獻(xiàn)】
[1]張雋,翟正軍.基于單一產(chǎn)品數(shù)據(jù)源的復(fù)雜產(chǎn)品設(shè)計(jì)制造協(xié)同技術(shù)研究[J].微電子學(xué)與計(jì)算機(jī),2009(03).
[2]楊承啟.PDM中有關(guān)BOM的研究及其應(yīng)用[J].電子機(jī)械工程,2004(02).
[3]黃夫理,朱文華,葉振宇,魯剛.Teamcenter中的BOM生成算法研究[J].現(xiàn)代制造工程,2012(10).
[4]堵士俊,吉衛(wèi)喜,孫斌,錢德成.BOM的存儲結(jié)構(gòu)與遍歷算法的優(yōu)化及實(shí)現(xiàn)[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用,2015(03).
[5]吳思達(dá),周傳宏.Teamcenter二次開發(fā)中PSE產(chǎn)品結(jié)構(gòu)的獲取及自動排序功能的實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2008(08).
[責(zé)任編輯:朱麗娜]