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