胡 浩,汪 崟,駱華武,李 鋒
HU Hao1,2, WANG Yin1, LUO Hua-wu3, LI Feng1
(1. 浙江理工大學(xué) 藝術(shù)與設(shè)計學(xué)院,杭州 310018;2. 浙江大學(xué)CAD&CG國家重點實驗室,杭州 310027 3. 杭州娃哈哈集團有限公司,杭州 310018)
適應(yīng)設(shè)備改造的維護BOM表動態(tài)生成技術(shù)研究
The dynamic generating technique of maintenance bill of material adaptation for equipment adjustment
胡 浩1,2,汪 崟1,駱華武3,李 鋒1
HU Hao1,2, WANG Yin1, LUO Hua-wu3, LI Feng1
(1. 浙江理工大學(xué) 藝術(shù)與設(shè)計學(xué)院,杭州 310018;2. 浙江大學(xué)CAD&CG國家重點實驗室,杭州 310027 3. 杭州娃哈哈集團有限公司,杭州 310018)
長壽命機械設(shè)備在使用者維護方式下會由于各種原因進行設(shè)備改造,設(shè)備改造會改變設(shè)備結(jié)構(gòu)進而影響到從設(shè)備結(jié)構(gòu)中派生出的維護BOM表。為了能夠適應(yīng)設(shè)備改造對維護BOM表帶來的各種調(diào)整與更改,本文提出了一種維護BOM表的動態(tài)生成技術(shù)。首先,將設(shè)備結(jié)構(gòu)形式化地定義為結(jié)構(gòu)樹,并定義其中的各種元素以及各種操作;然后每次設(shè)備改造被歸納為增加新模塊、去除舊模塊以及葉結(jié)點模塊內(nèi)部結(jié)構(gòu)的更改3種基本情況的組合,每種情況都會對制造商提供的原始維護BOM表進行更改以生成新的維護BOM表,可以利用設(shè)備結(jié)構(gòu)樹上的操作將每種情況定義為一種基本算法,3種基本算法被組合成維護BOM表動態(tài)生成算法就能夠定義設(shè)備改造對維護BOM表造成所有可能的更改而生成新的維護BOM表。最后以碳酸制瓶機設(shè)備改造前后的維護BOM表的變化作為案例闡述了研究思路。
設(shè)備結(jié)構(gòu)樹;維護BOM表;設(shè)備改造;維護BOM表動態(tài)生成算法
物料清單(Bill of Material,BOM)是產(chǎn)品結(jié)構(gòu)的描述性文件,其中包括產(chǎn)品結(jié)構(gòu)關(guān)系以及零部件模塊的基本屬性信息。維護BOM表(Maintenance Bill of Material,MBOM)是維修服務(wù)部門根據(jù)零部件的相關(guān)屬性信息,按具體維修要求從設(shè)備結(jié)構(gòu)中篩選出來的維護備用件清單。維護BOM表的信息結(jié)構(gòu)反映了維修生產(chǎn)的實際需求,提供了維修備用件物料編碼、備用件數(shù)量、單位、備用件庫存種類、采購周期等管理信息。
目前國內(nèi)有關(guān)的BOM的研究主要集中在PDM/ERP系統(tǒng)中BOM的結(jié)構(gòu)、構(gòu)造算法以及BOM的管理系統(tǒng)研究上。其中學(xué)者郝廣科、何衛(wèi)平等[1]提出了PLM背景下的BOM多視圖映射技術(shù),首先建立BOM結(jié)構(gòu)數(shù)學(xué)模型,然后給出BOM結(jié)構(gòu)映射算法;學(xué)者項艷梅等[2]提出了基于BOM將產(chǎn)品設(shè)計視圖、產(chǎn)品工藝視圖以及制造視圖進行集成。學(xué)者張帥、孫樹棟等[3]基于大型裝備的裝配問題提出維護BOM建構(gòu)方法;學(xué)者倪現(xiàn)存,左洪福等提出基于PDM的民機航線維修BOM管理系統(tǒng)的研究與開發(fā)方法[4]。
長壽命機械設(shè)備出廠之后的維護可以分成使用者維護(organizational maintenance)、中間層維護(intermediate maintenance)以及制造商維護(manufacturer maintenance)三種方式,在使用者維護方式下,假設(shè)設(shè)備出廠后制造商提供了設(shè)備結(jié)構(gòu)(圖紙或者CAD模型)信息以及維護備用件清單—原始維護BOM表,這是使用者維護的基礎(chǔ)。
使用者維護方式下的設(shè)備維護過程中,由于備件供應(yīng)、生產(chǎn)調(diào)整以及技術(shù)淘汰等各種原因,往往會經(jīng)歷零到數(shù)次的設(shè)備改造(equipment modification),設(shè)備改造活動帶來了設(shè)備結(jié)構(gòu)的改變,而維護BOM表也需要重新生成。本文提出一種能夠適應(yīng)設(shè)備改造的維護BOM表的動態(tài)生成技術(shù),能夠依據(jù)設(shè)備改造活動對于設(shè)備結(jié)構(gòu)的具體改變情況而修改原來維護BOM(制造商提供原始維護BOM表或者以前設(shè)備改造后的修改的維護BOM表)生成新的維護BOM表。
維護BOM有兩種形式,一種是設(shè)備結(jié)構(gòu)樹的形式,而另一種是從設(shè)備結(jié)構(gòu)樹中提取出的維修備用件的表格清單-維護BOM表,本文所研究的維護BOM表是多層BOM表,維護BOM表中的每行都是維護備用件的各種維護生產(chǎn)屬性信息[5],為了實現(xiàn)適應(yīng)設(shè)備改造的維護BOM表的動態(tài)生成技術(shù),首先需要根據(jù)維護生產(chǎn)需求定義設(shè)備結(jié)構(gòu)樹上的元素以及從設(shè)備結(jié)構(gòu)樹選擇備用件模塊插入維護BOM表的各種操作。
設(shè)備結(jié)構(gòu)樹中各種元素與操作定義如下:
T(Tree){
數(shù)據(jù)對象P:
設(shè)備結(jié)構(gòu)模塊P(Part)∈PS,PS(Parts Set)是設(shè)備結(jié)構(gòu)樹中所有結(jié)構(gòu)模塊的集合。
PS中的設(shè)備結(jié)構(gòu)模塊分為兩類:Ⅰ、維護模塊(Maintenance Part,MP):在設(shè)備維修中需要進行維護保養(yǎng)的模塊,設(shè)備結(jié)構(gòu)樹根節(jié)點(整機)是維護模塊;Ⅱ、非維護模塊:在設(shè)備結(jié)構(gòu)樹中除了維護模塊以外的其余結(jié)點都是非維護模塊。
維護模塊還可以分為兩類:Ⅰ、最小維護模塊(indivisibility maintenance part ,IMP):是指在維修生產(chǎn)中,作為模塊修理更換、備件庫存或者采購的不可分割的維護單元即維護備用件,維護BOM表中的維護備用件都是最小維護模塊[6];Ⅱ、非最小維護模塊:維護模塊中除了最小維護模塊之外都是非最小維護模塊。
基本操作O:
IsMP(&T,&p); 初始條件:樹T存在,p是樹中某個結(jié)點。操作結(jié)果:如果p是維護模塊,則返回為True(1),否則返回False(0)。
IsIMP(&T,&p); 初始條件:樹T存在,p是樹中某個結(jié)點。操作結(jié)果:如果p是最小維護模塊,則返回為True(1),否則返回False(0)。
IsLeaf(&T,&p); 初始條件:樹T存在,p是樹中某個結(jié)點。操作結(jié)果:如果p是結(jié)構(gòu)樹上的葉結(jié)點,則返回為True(1),否則返回False(0)。
ChildSet(&T,&p); 初始條件:樹T存在,p是樹中某個結(jié)點。操作結(jié)果:若p為非葉結(jié)點,返回p的子結(jié)點集合;若p為葉結(jié)點(可分解模塊),則返回其下一層子結(jié)點集合。
ExpandChild(&T,&p); 初始條件:樹T存在,p指向T中某個葉結(jié)點(可分解成下一層子結(jié)點)。操作結(jié)果:展開結(jié)點p的所有下一層子結(jié)點。
與維護BOM表相關(guān)的附加操作AO:
InsertMBOM (&T,&p);初始條件:樹T存在,p是樹中某個最小維護模塊結(jié)點。操作結(jié)果:將p代表的最小維護模塊插入維護BOM表的行項目中。
DeleteMBOM (&T,&p);初始條件:樹T存在,p是樹中某個最小維護模塊結(jié)點。操作結(jié)果:將代表p結(jié)點的最小維護模塊從維護BOM表的行項目集合中刪除。
在基本操作O與附加操作AO基礎(chǔ)上定義的擴展操作EO:
ExpandChildTree(&T,&p){
ExpandChild(&T,&p);
For (&p &c:ChildSet(&T,&p)) {
if(IsIMP(&T,&c)=1)then{InsertMBOM(&T,&c);}
if(IsMP(&T,&c)=1&&IsIMP(&T,&c)=0&&IsLe af (&T,&c)=1)
then { ExpandChild(&T,&c);
ChildSet(&T,&p)+=ChildSet(&T,&c);}}}
初始條件:樹T存在,p指向T中某個葉結(jié)點。操作結(jié)果:將p的所有子結(jié)點展開至所有維護模塊的葉結(jié)點都是最小維護模塊,并將其中的最小維護模塊都插入維護BOM表的行項目中。
DeleteSetMBOM(&T,&p){
ExpandChild(&T,&p);}
For (&p &c:ChildSet(&T,&p)) {
if(IsIMP(&T,&c)=1) then { DeleteMBOM(&T,&c);}
if(IsMP(&T,&c)=1&&IsIMP(&T,&c)=0&&IsLe af (&T,&c)=1)
then { ExpandChild(&T,&c);
ChildSet(&T,&p)+=ChildSet(&T,&c);}}}
初始條件:樹T存在,p是樹中某個結(jié)點。操作結(jié)果:將p結(jié)點子結(jié)點中的所有最小維護模塊結(jié)點從維護BOM表的行項目中刪除。
從圖1可以看出,每次設(shè)備改造事件給設(shè)備結(jié)構(gòu)模塊帶來的變化可能性可以分為3種:1)新的產(chǎn)品結(jié)構(gòu)模塊被增加到產(chǎn)品結(jié)構(gòu)中;2)原有產(chǎn)品結(jié)構(gòu)模塊從產(chǎn)品結(jié)構(gòu)中去除;3)葉結(jié)點產(chǎn)品結(jié)構(gòu)模塊由于其內(nèi)部結(jié)構(gòu)更改而變成新模塊(如果不是葉結(jié)點則還可分解成子結(jié)點的增加、去除以及更改的組合)[6],任何一次設(shè)備改造事件所引起的設(shè)備結(jié)構(gòu)變化都可以用其產(chǎn)品結(jié)構(gòu)模塊的這3種變化組合加以定義。
為了使用1.2節(jié)定義ExpandChildTree(&T,&p)操作與DeleteSetMBOM(&T,&p)操作而使算法更加簡潔,定義設(shè)備改造中的新增結(jié)點與刪除節(jié)點都是使設(shè)備結(jié)構(gòu)改變的頂層的新增結(jié)點集合與刪除節(jié)點集合。
圖1 設(shè)備改造給設(shè)備帶來結(jié)構(gòu)改變示意
設(shè)備改造之后,可以利用1.1節(jié)定義在設(shè)備結(jié)構(gòu)樹上的各種操作,在原來維護BOM表基礎(chǔ)上實施更改而形成新的維護BOM表。
由于設(shè)備改造給設(shè)備結(jié)構(gòu)帶來的變化是新增模塊、去除模塊以及更改模塊這3種情況的組合,因此設(shè)備改造給維護BOM表帶來的變化也是這3種情況單獨給維護BOM表帶來的改變的組合。
假設(shè)新增模塊集合為IncModuleSet(簡稱IS),集合中的元素都是設(shè)備結(jié)構(gòu)中新增模塊的頂層模塊;去除模塊集合為DecModuleSet(簡稱DS),集合中的元素都是設(shè)備結(jié)構(gòu)中刪除模塊的頂層模塊;更改模塊集合為AltModuleSet(簡稱AS),3個集合都可以包含從0到有限個模塊。用S代表以 上任意一個集合,則遍歷集合中每個元素的操作是TravelToNext(S);判斷每個集合是否被完全遍歷操作為HasMoreElement(S),如果集合內(nèi)已經(jīng)被遍歷或者集合為空,其值為False(0),否則為True(1)。
設(shè)備改造的第1種基本情況:設(shè)備改造活動僅僅為設(shè)備增加新結(jié)構(gòu)模塊,在這種情況下生成新維護BOM表的算法如下圖2所示。這個過程就是在新增加的結(jié)構(gòu)模塊集合中找到最小維護模塊,并將它們插入到原來的維護BOM表中,形成新的維護BOM表。
由于增加新模塊而生成新維護BOM表的IncreaseModule(IS)算法如下:
1)執(zhí)行HasMoreElement (IS),判斷IS中是否還有下一個需要遍歷的結(jié)點(空集合沒有下一個需要遍歷結(jié)點),如果是False則直接結(jié)束,如果是True則執(zhí)行TravelToNext(IS),遍歷到下一個元素。
2)執(zhí)行IsMP(&T,&p)判別,有2種可能:
(1)增加模塊為非維護模塊,跳到步驟1執(zhí)行HasMoreElement (IS)判斷是否還有下一個結(jié)點。
(2)增加模塊是維護模塊,執(zhí)行IsIMP(&T,&p),又分為兩種情況:ⅰ、增加模塊是最小維護模塊,執(zhí)行InsertMBOM (&T,&p)將結(jié)點p代表模塊插入維護BOM表中,跳到1)執(zhí)行HasMoreElement(IS)判斷是否還有下一個結(jié)點;ⅱ、增加模塊不是最小維護模塊,執(zhí)行ExpandChildTree(&T,&p),將p模塊展開直至所有維護模塊葉結(jié)點都是最小維護模塊,并將最小維護模塊葉結(jié)點插入維護BOM表中,跳到1)執(zhí)行HasMoreElement (IS)判斷是否還有下一個結(jié)點。
設(shè)備改造的第2種基本情況:設(shè)備改造活動為僅僅設(shè)備去除舊的模塊,在這種情況下生成新維護BOM表的算法如下圖3所示。
這個過程就是在去除的結(jié)構(gòu)模塊中找到最小維護模塊,并將它們從原來的維護BOM表中刪除,形成新的維護BOM表。
圖2 設(shè)備技術(shù)改造增加結(jié)構(gòu)模塊生成新維護BOM表的算法
由于去除模塊而生成新維護BOM的DecreaseModule(DS)算法如下:
1)執(zhí)行HasMoreElement (DS),判斷DS是否還有下一個需要遍歷的結(jié)點(空集合沒有下一個需要遍歷結(jié)點),如果是False則直接結(jié)束,如果是True則執(zhí)行TravelToNext(DS),遍歷到下一個元素。
2)執(zhí)行IsMP(&T,&p)判別,有2種可能:
(1)去除模塊為非維護模塊,跳到第1)執(zhí)行HasMoreElement(DS)判斷是否還有下一個結(jié)點。
(2)去除模塊是維護模塊,執(zhí)行IsIMP(&T,&p),又分為兩種情況:ⅰ、去除模塊是最小維護模塊,執(zhí)行DeleteMBOM (&T,&p)將結(jié)點p代表模塊從維護BOM表中刪除,跳到第1)執(zhí)行HasMoreElement (DS)判斷是否還有下一個結(jié)點;ⅱ、去除模塊不是最小維護模塊,執(zhí)行DeleteSetMBOM(&T,&p),將p結(jié)點所有子結(jié)點中的維護模塊葉結(jié)點從維護BOM表的行項目中刪除,跳到第1)執(zhí)行HasMoreElement (DS)判斷是否還有下一個結(jié)點。
設(shè)備改造的第3種基本情況:設(shè)備技術(shù)改造活動僅僅將設(shè)備某些葉結(jié)點模塊更改成新模塊。
模塊的更改可以看成先從設(shè)備結(jié)構(gòu)中去除了舊模塊,而后在同樣結(jié)構(gòu)位置處增加新的模塊,因此實現(xiàn)模塊更改的算法AlterationModule(AS)如下:
1)執(zhí)行DecreaseModule(AS)算法如圖3所示;
2)執(zhí)行IncreaseModule(AS)算法如圖4所示。
圖3 設(shè)備改造去除結(jié)構(gòu)模塊生成新維護BOM表的算法
圖4 適應(yīng)設(shè)備改造維護BOM動態(tài)生成算法
適應(yīng)設(shè)備改造的維護BOM表動態(tài)生成算法DynamicModificationMBOM(MS)如下圖4所示,MS=IS∪DS∪AS。
1)執(zhí)行IncreaseModule(IS)算法,將新增模塊中的最小維護模塊增加到維護BOM表中。
2)執(zhí)行DecreaseModule(DS)算法將去除模塊中的最小維護模塊從維護BOM表中去除。
3)執(zhí)行AlterationModule(AS)算法,先從維護BOM中去除更改前更改模塊中的最小維護模塊,然后將更改后更改模塊中最小維護模塊增加到維護BOM表中。
4)BOM生成算法結(jié)束,得到新的維護BOM表。
某飲料企業(yè)灌裝車間碳酸制瓶機設(shè)備已經(jīng)使用7年,設(shè)備結(jié)構(gòu)被SolidWorks的PDMWorks Workgroups管理,Excel形式的維護BOM表作為設(shè)備模型的參考文件在PDMWorks中與設(shè)備的CAD結(jié)構(gòu)模型關(guān)聯(lián)在一起,如下圖6所示,維護BOM表包含了設(shè)備維護備用件物料編碼、結(jié)構(gòu)層次、個數(shù)、單位、庫存種類(ABC分類)、備件來源、更換頻率、備件成本、采購或制造周期等維護生產(chǎn)所需信息。
圖5所示的維護BOM表中的行項目是設(shè)備制造商提供維護備用件清單。2008年10月對進行了設(shè)備改造:在加熱烘爐入口增加瓶坯干式殺菌系統(tǒng)模塊以支持為衛(wèi)生敏感飲料的生產(chǎn);吹瓶機的不銹鋼模具被升級為質(zhì)量更輕,性能更強的鋁質(zhì)新模具;加熱烘爐的紅外加熱燈管被更換成降低15%的電能消耗的新燈管。
圖5 碳酸制瓶機設(shè)備改造前的維護BOM表
圖6 碳酸制瓶機設(shè)備技術(shù)改造后的維護BOM表
以JavaSE1.6為開發(fā)工具對SolidWorks的PDMWorks Workgroup[7]進行二次開發(fā),依據(jù)維護BOM表動態(tài)生成算法DynamicModificationMBOM(MS)能夠?qū)崿F(xiàn)從新的設(shè)備結(jié)構(gòu)以及原先的維護BOM中得到新的維護BOM表如下圖6。
圖5所示維護BOM表與圖6所示的維護BOM相比,增加行號為15的瓶坯殺菌系統(tǒng)模塊的噴嘴,它是新增模塊中的最小維護模塊;另外圖7維護BOM表中的不銹鋼吹瓶模具被升級更換成了鋁合金吹瓶模具;圖7中維護BOM表中烘爐紅外加熱燈管被升級更換成了節(jié)能紅外加熱燈管。
新的維護BOM表與原來的維護BOM表之間采用更改標記(Revision)與生效時間進行區(qū)別。
1)使用者維護方式下長壽命機械設(shè)備在維護階段會經(jīng)歷設(shè)備改造,設(shè)備改造是對設(shè)備結(jié)構(gòu)的改變,會影響到其派生的維護BOM表發(fā)生更改。
2)將設(shè)備結(jié)構(gòu)形式化定義成設(shè)備結(jié)構(gòu)樹,并定義其上的各種元素以及操作,以支持適應(yīng)設(shè)備改造的維護BOM表的動態(tài)生成技術(shù)。
3)設(shè)備改造給設(shè)備結(jié)構(gòu)帶來的變化可以歸結(jié)為3種基本情況:增加新模塊,去除舊模塊以及葉結(jié)點模塊的更改,設(shè)備改造給維護BOM表帶來的變化也是這3種情況單獨給維護BOM表帶來的改變的組合。
4)IncreaseModule(IS)算法、DecreaseModule(DS)算法與AlterationModule(AS)算法分別單獨定義了3種基本情況下如何修改原有維護BOM表以生成新的維護BOM表,在此基礎(chǔ)上,綜合性的Synthesis Adjust mentMBOM(MS)算法可以針對設(shè)備技術(shù)改造具體情況對原有維護BOM表進行修改,生成新的維護BOM表。
[1] 郝廣科,何衛(wèi)平,閻慧.PLM環(huán)境下BOM多視圖映射技術(shù)研究[J].現(xiàn)代制造工程,2007,12:16-18.
[2] 項艷梅,朱林,劉清華.基于BOM的產(chǎn)品數(shù)據(jù)多視圖集成研究[J].計算機應(yīng)用研究,2003,10(2):17-19.
[3] 張帥,孫樹棟,蔡志強.大型復(fù)雜裝配維護BOM管理系統(tǒng)研究與實踐[J].中國制造業(yè)信息化,2008,37(9):70-73.
[4] 倪現(xiàn)存,左洪福,許娟.基于PDM的民機航線維修BOM管理系統(tǒng)研究與開發(fā)[J].飛機設(shè)計2008,28(3):50-53.
[5] 汪昌任著 SAP EAM設(shè)備維護系統(tǒng)應(yīng)用及案例[M].北京.清華大學(xué)出版社,2005:25-28.
[6] 葉萬水,主編.設(shè)備工程[M].上海:華東理工大學(xué)出版社,2005:125-143.
[7] SolidWorks公司.SolidWorks高級教程產(chǎn)品數(shù)據(jù)管理[M].北京:機械工業(yè)出版社,2008:183-11.
TH311.52
A
1009-0134(2010)11(上)-0004-05
10.3969/j.issn.1009-0134.2010.11(上).02
2010-03-08
國家自然科學(xué)基金項目(50975255,60974083); 國家863計劃項目(2009AA04Z146)
胡浩(1971 -),男,浙江杭州人,博士研究生,研究方向為產(chǎn)品生命周期管理。