0 引言
產品的BOM表(Bill of Material)是定義產品結構的重要技術文件,是一種描述產品裝配關系的結構化零件表,其中包括設計過程中所有裝配體、零件、原材料等信息的清單。BOM反映了一個產品所有零件的數量關系和零部件的構成層次關系,在產品由設計過程向制造過程的轉化中,BOM起著非常重要的作用,它是連接產品設計過程和制造過程的信息紐帶。
BOM表在信息傳遞的過程中具有重要的作用,但是在汽車夾具設計行業還沒有得到統一,各制造企業提供的參考BOM表各不相同,這就為BOM表的自動化生成增加了難度,阻礙了企業間的信息交流與合作。在總結了大部分制造企業提供的BOM表樣式中不難發現,BOM表需要填寫的內容較多,是BOM表制作的主要內容。汽車夾具零件的屬性項有:零件編號、零件名稱、材料、數量、重量、版本、術語、備注,而各企業的BOM表主要內容項是這幾種屬性項的簡單組合,這就為設計通用BOM系統提供了可能。
模板式的通用BOM系統的構想:根據制造企業提供的參考BOM表制作BOM表輸出模板,用VB編程工具開發編寫應用程序,遍歷零件的屬性信息,將零件的各屬性項輸出到BOM模板的表行中,最終生成符合企業要求的BOM表。
1 CATIA的二次開發環境
訪問CATIA的對象有很多種不同的方式,對于其他程序或腳本,CATIA具有OLE自動化對象服務器的功能。一些程序或腳本能夠對COM對象進行訪問,那么也能訪問CATIA的對象并對其進行操作。訪問CATIA對象有以下的方法:
1)進程內的腳本
編程腳本和CATIA如果同時運行在同一進程環境下,稱作進程內的腳本。腳本類型有:
VBScript腳本、CATScript腳本、VBA腳本。
2)進程外的腳本
編程腳本和CATIA如果沒有運行在同一進程環境下則稱進程外的腳本。編程腳本不再由CATIA環境來調用,CATIA還具有另外一個功能,即OLE自動化對象服務器,進程外的腳本通過CATIA軟件的COM接口訪問CATIA內部的對象。腳本類型有:
VB或VBA訪問CATIA、Windows Scripting Host訪問CATIA、嵌入到網頁中。
進程內編程訪問CATIA對象具有以下主要特點:占用內存少,運行效率高,操作簡便。但是編寫的程序在實現的功能上受到了很大的限制,比如VBScript腳本不能交互操作,VBA腳本不能編譯等缺點,這就降低了編程的實用性。本研究采用進程外編程方式訪問CATIA對象,運用VB編程語言編制出裝配體BOM表自動生成程序,設計交互界面,便于人機操作,將產品的零部件屬性信息自動輸出至外部Excel清單文件中,實現BOM表的聚類輸出,便于制造件的加工制造和外購件的采購,方便裝配過程中零部件的統計和核對,進而提高了工作效率。
2 BOM系統的設計
2.1 系統的功能
模板式通用BOM系統設計的主要目的是能夠兼容不同制造企業的提供的BOM表之間的差異性,模板式通用BOM系統在傳統BOM系統的基礎上,設計的系統具有如圖1所示的功能。
圖1 BOM系統的功能圖
1)根據提供的參考BOM表用戶配置BOM表輸出模板,由輸出模板關鍵字驅動程序遍歷產品屬性樹;
2)初始化BOM模板,根據BOM模板的關鍵字,對BOM模板自動進行初始化操作,為輸出零件屬性做準備;
3)為使設計者了解要提取零件的哪些屬性項,BOM系統具有屬性提示功能;
4)判斷零件是否對稱,控制零件數量;
5)向BOM模板寫入屬性信息;
6)更新BOM模板中提取的屬性信息。
根據系統的設計的功能,通用BOM系統的功能界面如圖2所示。
圖2 通用BOM系統功能界面
2.2 系統的設計
從已經檢索的來文獻看,傳統BOM系統提供的BOM表輸出功能單一,并不具有兼容性,不能滿足不同企業對BOM表的差異化需求。而有學者設計的通用BOM系統,雖然能夠滿足BOM表的兼容性,但是由于設計規則的限制,用戶在使用過程中需要熟悉模板制定規則且要保證制作的模板的正確性,給用戶的使用帶來了不便。
模板式通用BOM系統可以很好的解決BOM表輸出功能單一,操作復雜的問題,前期設計者利用CATIA的宏程序批量的處理零件的屬性信息,為后期BOM表的輸出做準備,在BOM表輸出之前,只需對BOM輸出模板定義系統默認的屬性項關鍵字,就可以向BOM表中寫入零件屬性信息,具有適應性強,定義規則簡單,輸出快捷的特點。模板式通用BOM系統在操作流程上和傳統BOM系統具有明顯的不同,對比效果如圖3所示。
圖3 BOM系統流程圖
對比現行BOM系統和模板式通用BOM系統可發現,雖然傳統BOM系統可以生成BOM表,但是生成的BOM表明顯的不能滿足不同客戶提出的的BOM格式要求,還需要后期手動修改,這就降低了BOM的生成效率,同時還容易出現錯誤等缺點。根據設計經驗提出的通用BOM系統在總結現行BOM系統特點的基礎上,做了大量的思考和總結,設計的模板式通用BOM系統較傳統BOM系統具有明顯的優勢。
模板式通用BOM系統在設計上采用多個功能模塊,使模塊之間在信息共享和管理上得到提高,系統采用了三層系統結構:交互層、支撐層和核心層。
交互層用于處理窗體功能與CATIA系統的建立功能關聯,VB程序通過COM接口來訪問CATIA內部的對象,來完成零部件屬性的提取,BOM表的生成和更新等功能;支撐層主要是VB程序訪問CATIA零件的實體對象,通過遍歷算法來讀取零件的屬性信息,為數據的存取做準備;核心層用于將提取的零件的屬性信息存入在數組中。
圖4 BOM系統結構
3 BOM系統的關鍵技術
3.1 模板技術
模板技術是通用BOM系統的核心技術,在通用BOM系統中扮演著舉足輕重的作用,BOM模板表的規格直接關系到輸出BOM表的形式和屬性信息的合理配置。BOM模板表包括兩部分:表頭和表行。對每個設計項目來說,區別最大的部分是BOM表表頭。因企業不同而不同,對于單個項目來說表頭內容又具有高度的相似性,在項目設計中只需制作好一個BOM表的表頭內容便可在設計中借用該模板;表行內容是BOM表統計的核心內容,是統計的重點,BOM系統設計的關鍵是輸出零件的詳細屬性信息到BOM表中。
定義BOM表屬性項關鍵字是制作BOM模板的重中之重,關鍵字定義的正確與否直接關系到零件屬性提取的成功與否。通用BOM系統定義的屬性關鍵字如表1所示。
表1 屬性項關鍵字
模板技術的基本原理:根據該企業BOM表格式并按照該系統的模板規則建立輸出模板,系統的初始化功能模塊會首先尋址表頭內容關鍵字,根據定義的關鍵字內容,遍歷零件對應的屬性項,將零件的屬性信息由數組中寫入到輸出模板中,生成符合企業要求的BOM表,然后保存到制定的位置處,則BOM表制作完成。由于輸出模板的可定制性,因此通用BOM系統能生成不同格式的 BOM表。
3.2 遞歸遍歷算法
模板式通用BOM系統在算法上采用遞歸遍歷算法。先根遍歷,采用深度優先遍歷的思路,即遍歷是對BOM各子樹逐層進行。其遍歷規則如下:
1)首先訪問產品結構樹的根結點;
2)如果該結點有子項,訪問其子項,并跳到第2)步;
3)如果有該結點有兄弟項,訪問下一個兄弟項,并跳到第2)步;
4)如果其父項有下一個兄弟項,訪問其父項的下一個兄弟項,并跳到第2)步;
5)自動判斷當前結點是否根結點,是則退出;6)當前結點由父項結點來代替,并跳轉至第4)步。
圖5 產品結構模型樹
以圖5產品結構為例,其遍歷次序為:A、B(1)、f(2)、E(3)、f(1)、d(2)、d(3)、C(1)、g(2)、h(2)、f(2)。
由于車身夾具產品結構模型樹的層數比較少,采用遞歸遍歷算法代碼簡潔,能夠展示零部件之間的父子關系和BOM樹的層次結構。
3.3 零件屬性數組
模板式通用BOM系統在系統初始化時預先開辟兩個或三個數組,這個數組的元素個數根據產品結構樹的復雜情況而定,數組元素不必很多,本系統開辟100個數組元素,目的是儲存數據。將上位機讀來的數據存入預先開辟好的其中一個數組中,當前數組存滿后,再換另外一個數組,這樣做的優點是便于數據的管理和提取數據的正確性,最后使用代碼將將數組數據寫入Excel表格。
3.4 BOM視圖映射中的一致性維護
BOM由物料項和物料項關系組成,但是由于BOM的生成過程不同,所包含的數據也不完全相同,因此為了保證數據的一致性,仍需要對產品不同BOM視圖進行對比。BOM的常見操作如增加部件,刪除部件等也會造成BOM數據的不一致性。BOM視圖映射中的一致性維護就是物料項和物料項關系的一致性維護。
針對BOM一致性維護問題,設計BOM的父子循環一致性檢查算法,其基本思想為:設原BOM元素集合為S,新BOM元素集合為P。對集合P,遍歷產品的父項和子項,判斷零部件是否是多實例零部件,即是否已經統計過,如果已經統計過,則不再讀取信息,數量增加,如果是新增加或減少的零部件,則對其進行入棧或出棧操作。當遍歷到空字符串時,則遍歷完成退出循環。
4 模板式通用BOM系統的應用實例
本實例以CATIA V5為實驗支撐平臺,基于VB編程語言開發的模板式通用BOM系統能夠生成不同格式的BOM表。以下以某車身夾具單元為例生成兩種不同格式的BOM表來驗證系統的通用性。某車身的一副完整的車身夾具如圖6所示。
圖6 夾具單元
上表為不同企業風格的A格式輸出模板和B格式輸出模板,根據系統的要求規則對A和B兩種格式的BOM模板定義屬性關鍵字,A格式模板的屬性項關鍵字為:PART NO、PART NAME、MATERIAL、Q’TY、REMARK;B格式模板的屬性項關鍵字為:PART NO、PART NAME、Q’TY、REMARK。按照BOM表的操作流程生成的A、B兩種格式的BOM表如圖7、圖8所示。
圖7 BOM輸出模板
圖8 BOM表導出圖
由生成的A、B兩種格式的BOM表結果可以得知生成的BOM表與企業給定的參考BOM表完全一樣,模板式通用BOM系統具有很好的適用性和兼容性。
5 結束語
針對汽車夾具制造中的BOM設計中存在的問題,在總結現有BOM設計的特點,提出了模板式通用BOM系統,該系統完全兼容了不同企業格式的BOM表,支持快速啟動CATIA,BOM表模板初始化,顯示屬性項,指定對稱零件,寫入BOM表和更新BOM表的功能,還具有BOM視圖映射一致性維護的功能。模板式通用BOM系統在設計中具有很強的適用性,大大的提高了車身夾具設計BOM向制造BOM轉化的效率,降低了出錯率,對縮短車身夾具設計周期具有重要的意義。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.hanmeixuan.com/
本文標題:模板式通用BOM系統的開發與研究