李 榮,高友武
(1.貴州民族學院 理學院,貴陽 550025;2.湖南工程學院 理學院,湘潭 411104)
BOM是MES系統(tǒng)中的最基本資料,用來描述產品的零部件組成和零部件之間的關系,是產品信息的基礎.在MES系統(tǒng)中所使用的各種BOM中,設計BOM、工藝BOM以及制造BOM處于核心地位[1].其中,設計BOM 是物料清單的初始階段,主要反映了產品結構信息.因此,為了實現BOM全生命周期有效管理,必須首先解決設計BOM的數據采集、存儲等集成問題.
隨著CAD技術在制造業(yè)的廣泛應用,CAD的產品設計信息也越來越龐大,對這些設計信息的管理成為迫切的任務.設計部門在CAD系統(tǒng)中產生的設計BOM是企業(yè)制造、管理和采購部門的基礎數據來源,也是MES信息平臺的交匯點[2].但目前大部分企業(yè)的CAD系統(tǒng)與MES系統(tǒng)是獨立運行,系統(tǒng)間數據傳遞主要依靠人工,這樣大大降低了產品設計效率.為此,研究一種從CAD系統(tǒng)中自動獲取產品結構信息,并構建相應的設計BOM的數據庫,能夠快速、一致以及準確的導入MES系統(tǒng)中的集成方法.該研究應用在某公司的輪胎定型硫化機分公司試點,成功解決了企業(yè)的實際問題.
設計部門完成產品的設計后,設計BOM已經隱含在CAD系統(tǒng)產生的裝配圖和與之相關聯的電子工程圖中.設計BOM由雙親件及子件組成關系樹,可以以向上跟蹤和向下分解的形式提供信息.由于產品組成結構都具有一定的復雜性,從上層裝配到下層零部件可能有幾層或幾十層,其中還有大量的零件或組件互相借用,這樣就形成了網狀結構.圖紙上的明細欄在一定范圍內表示了這種網狀結構,零件及組件的特征信息(如材料、規(guī)格等)來自于明細欄.故設計BOM信息的初步提取從提取裝配明細信息開始.通過人工定義模板,可以直接將具有一定位置關系的單元格定義為互相之間的某種語義關系,留下的工作只是首先找基點,然后按坐標位置將信息放置在相應單元格,極大簡化了算法的復雜度.并可將提取準確度提高到近乎百分之百,同時運行效率也有極大提高.
圖1 標題欄、明細欄格式
具體步驟為:
首先的任務是找到圖紙基點作為原點.從圖1中可以看到,定點P點無疑是最佳的選擇,P點坐標是(0,0).隨后遍歷所有選中對象,將所有屬于文字信息(Text、MText)對象的(X,Y)坐標屬性和字符串屬性提取出來,保存到數據庫中.通過對文字坐標值的分析,可以確定該項在明細欄中的具體位置,從而保證提取的準確性.
CAD系統(tǒng)中的裝配圖是以樹形結構組織裝配中的零部件信息,為了提取產品的設計BOM,必須對明細欄中的代碼進行分層遍歷(每個零部件代號唯一).對裝配結構樹的遍歷通常有兩種方法:廣度遍歷和深度遍歷.
廣度遍歷是按照先兄后子的順序進行的,即是以層為順序,將某一層上的所有節(jié)點都搜索到了之后才向下一層搜索,完成設計BOM構建.深度遍歷是按照先子后兄的順序進行的,即首先訪問出發(fā)點v,并將其標記為已訪問過;然后依次從v出發(fā)搜索v的每個鄰接點w.若w未曾訪問過,則以w為新的出發(fā)點繼續(xù)進行深度優(yōu)先遍歷,直至圖中所有和源點v有路徑相通的頂點(亦稱為從源點可達的頂點)均已被訪問為止.若此時圖中仍有未訪問的頂點,則另選一個尚未訪問的頂點作為新的源點重復上述過程,直至圖中所有頂點均已被訪問為止,完成設計BOM構建.
由于ERP/MES系統(tǒng)中的BOM中的物料一般是以先子后兄的形式存在,該系統(tǒng)采用深度優(yōu)先算法來遍歷CAD裝配結構樹提取設計BOM,以便導入ERP/MES系統(tǒng).
系統(tǒng)的深度優(yōu)先算法的遍歷過程是一個遞歸查找過程,該遞歸遍歷過程如圖2所示.
系統(tǒng)的深度優(yōu)先遞歸遍歷由一個遞歸函數Sub Iterator(objDoc As Object,objApp As DWGAuto-CAD.Application)來實現,該函數運行中,提取零部件代碼、名稱及圖文檔的文件路徑等信息,并且在遞歸過程中構建各層子件的分級編碼,形成設計BOM.
目前最常用的存儲形式是通用型,即主要由產品的實際結構組成,內容包括:零部件代碼、父/子件代碼及技術要求等.不同規(guī)格的產品系列之間在產品結構中的某些子件結構非常相似,有時完全相同(企業(yè)設計部門在圖紙明細欄中的反映為“借用”)如標準配置(廠標)的45'硫化機與51'硫化機的抓胎裝置完全一樣.如果采用通用型設計BOM管理模式,勢必會造成數據的重復,和冗余進而影響查詢效率.因此,提出模塊化管理模式,將產品所需要的所有零部件模塊化分類,如按使用屬性分為專用件、借用件、標準件、通用件、外協(xié)件、替換件等多個模塊,這樣設計多種規(guī)格產品時可以直接調用模塊,減少錯誤和重復勞動,從而達到簡化設計BOM管理的目的,特別是存在大量相同子件時(如47'、51'、52'液壓輪胎定性硫化機就有多處部件相似或是相同),模塊型的優(yōu)越性將更加明顯.
圖2 深度優(yōu)先算法遍歷裝配結構樹提取設計BOM過程
信息集成的主要目的是實現企業(yè)不同部門間產生的異構數據共享和集成.異構數據庫的信息集成方案有很多,總結起來大致可以分為以下幾種:共享數據庫、專用接口、中間數據庫、XML數據流以及中間件等.這些方案都有一個共同的缺陷:就是數據的單向性,即只能把CAD中的設計BOM信息單方面?zhèn)鬟f到信息管理系統(tǒng)中,而不能把信息管理系統(tǒng)中的變更的BOM信息反饋到CAD軟件中[3].基于以上情況,本系統(tǒng)采用的是基于共享信息模型的緊密集成模式,當企業(yè)的高級主管通過ERP下達設計變更通知時,做為車間層的MES系統(tǒng)將所有最新的零部件信息及其相關件的結構信息逆向傳遞給CAD系統(tǒng),技術人員根據MES提供的BOM,進行重新設計,并將新的變更信息傳遞給MES,以確保生產的正常運行.如圖3所示.
圖3 設計BOM與CAD集成方法
由于設計變更不可避免(產品結構發(fā)生變化、客戶更改技術文件、質量問題等原因),加上工藝、制造等現場原因,MES中的產品信息在頻繁的變更中.為了保證CAD系統(tǒng)和MES系統(tǒng)數據的一致性,傳統(tǒng)的做法是技術人員根據反饋回的變更信息,采用手工錄入的方法將圖形中的明細表再編譯,這樣做不僅費時費力,且不及時,甚至會因為錄入錯誤而造成惡劣影響 .本文在從CAD圖形中自動提取設計BOM的基礎上,設計雙向輸出,算法如圖4所示.
其中關鍵部分在于將變更的明細表信息反饋到CAD中時,插入一個以圖號標記的塊,即將當前輸出圖號保存在塊的屬性值中,當用戶對明細表信息執(zhí)行更新功能時,程序就會先根據圖形中符合條件的塊,隨后就提出塊所在圖形中的位置(即坐標值)及其屬性值(即圖紙?zhí)枺?,最后只需從數據庫中提取新的明細信息替換指定位置的舊信息,從而完成CAD系統(tǒng)中的數據逆向更新.
圖4 更新功能程序圖
提出一種基于共享信息模型的緊密集成模式以實現CAD系統(tǒng)與MES系統(tǒng)之間數據雙向集成,并給出數據一致性維護的更新算法.為解決制造業(yè)信息化中多異構數據集成探索出了一條新路,具有很好的示范作用.
[1]張永弟,楊 光,岳嚴芳.基于BOM的CAD/CAPP/MES集成研究[J].機械設計與制造,2011(3):78-79.
[2]徐翔斌,周新建.從CAD系統(tǒng)中自動導入產品BOM的研究和開發(fā)[J].機械設計與制造,2007(11):185-187.
[3]郭 鋼,馮亮亮.CAD/PDM系統(tǒng)間數據雙向集成技術和應用研究[J].計算機工程與應用,2010,46(15):222-225.
[4]郭 鋼,王廷軍.基于CAD和PDM集成技術的產品快速設計[J].機械,2011,38(6):54-59.