潘勇


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