摘要:物料凈需求計(jì)算是MRP計(jì)算中的一個(gè)關(guān)鍵環(huán)節(jié),該文從應(yīng)用的角度探討了基于低層碼的物料凈需求算法。介紹了低層碼的相關(guān)概念和物料凈需求的詳細(xì)計(jì)算過(guò)程,通過(guò)低層碼,很好的控制了物料需求計(jì)算的順序,提高了運(yùn)行效率。
關(guān)鍵詞:物料清單;物料需求計(jì)劃;凈需求;低層碼
中圖分類號(hào):TP312 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)19-4564-03
物料需求計(jì)劃(MRP)是一種物料管理和生產(chǎn)方式,是ERP系統(tǒng)的重要組件,是建立在主生產(chǎn)計(jì)劃(MPS)的基礎(chǔ)上,根據(jù)產(chǎn)品的物料清單(BOM)、庫(kù)存、生產(chǎn)工藝、批量政策和提前期等技術(shù)和管理特征,生成物料采購(gòu)計(jì)劃和零部件生產(chǎn)、裝配的生產(chǎn)作業(yè)計(jì)劃,從面有效管理和控制企業(yè)物料流動(dòng)的微觀計(jì)劃 [1]。 MRP保證了生產(chǎn)能正常有序的進(jìn)行,同時(shí)又要控制物料采購(gòu)的數(shù)量、時(shí)間,避免庫(kù)存積壓,減少流動(dòng)資金的占用,以提高資金的利用率[2]。
物料凈需求的計(jì)算是MRP計(jì)算中的一個(gè)最重要的環(huán)節(jié),是車間生產(chǎn)計(jì)劃和物料采購(gòu)計(jì)劃生成的依據(jù),也是MRP中計(jì)算最為繁瑣,復(fù)雜的一種運(yùn)算。但以往論文對(duì)物料需求的算法大多側(cè)重于理論研究,對(duì)于應(yīng)用系統(tǒng)如何實(shí)現(xiàn)算法描述不太清晰,因此,該文主要從系統(tǒng)應(yīng)用的角度探討物料凈需求算法。
1 物料清單(bill of materials,BOM)概述
1.1 BOM結(jié)構(gòu)
物料清單是描述產(chǎn)品組成的技術(shù)性文件,表明了產(chǎn)品所需標(biāo)準(zhǔn)件、零部件直到原材料之間的結(jié)構(gòu)關(guān)系以及數(shù)量關(guān)系,是進(jìn)行MRP運(yùn)算的先決條件。其數(shù)據(jù)結(jié)構(gòu)表現(xiàn)為樹(shù)狀結(jié)構(gòu)[2]。
圖1為X產(chǎn)品的結(jié)構(gòu)圖,其中X是根結(jié)點(diǎn),一般為最終成品,葉子結(jié)點(diǎn)是需要外購(gòu)的零部件或原材料,用來(lái)加工或裝配自制件(中間件),如C和E結(jié)點(diǎn)。中間層次的非葉子結(jié)點(diǎn)是通過(guò)車間加工裝配的自制件。節(jié)點(diǎn)間的關(guān)系定義為“父項(xiàng)/子項(xiàng)”關(guān)系[1],括號(hào)中的數(shù)量為用量因子,表示生產(chǎn)或裝配一個(gè)父項(xiàng)需多少個(gè)子項(xiàng)。如:一個(gè)X是2個(gè)A、4個(gè)B和1個(gè)E加工或裝配而成,1 個(gè)B又由2個(gè)G和2個(gè)I加工或裝配而成。
1.2 BOM數(shù)據(jù)庫(kù)設(shè)計(jì)
BOM是生產(chǎn)部門生產(chǎn)產(chǎn)品的依據(jù),必須包含產(chǎn)品組成結(jié)構(gòu)和工藝流程信息,如在生產(chǎn)中零件的不良率、提前期等。在關(guān)系數(shù)據(jù)庫(kù)中,BOM存儲(chǔ)為兩張表:物料主表(MaterialInfo)和物料結(jié)構(gòu)表(MaterialStructure),如表1。物料主表描述物料的詳細(xì)信息,物料結(jié)構(gòu)表描述產(chǎn)品的結(jié)構(gòu)關(guān)系[3-4]。
1.3 低層碼(LLC)
在產(chǎn)品結(jié)構(gòu)中,不可避免的會(huì)發(fā)生一些物料出現(xiàn)在同一產(chǎn)品結(jié)構(gòu)樹(shù)中的不同層次,或出現(xiàn)在不同產(chǎn)品結(jié)構(gòu)樹(shù)中的不同層次,這種現(xiàn)象將會(huì)影響到MRP計(jì)算物料需求的效率和不合理的凈需求量,造成生產(chǎn)中物料短缺。解決這個(gè)問(wèn)題的辦法是引入低層碼。
所謂低層碼是指某個(gè)物料在所有產(chǎn)品結(jié)構(gòu)樹(shù)中所處的最低階層碼,每個(gè)物料有且僅有一個(gè)低層碼[5]。如圖1中E物料的階層碼為1和3,E物料的低層碼是3。在計(jì)算物料凈需求時(shí),先查找MPS涉及的所有產(chǎn)品BOM,計(jì)算BOM中各物料的低層碼,然后按分層原則,從BOM的頂層(根結(jié)點(diǎn))向下計(jì)算。如果某物料的階層碼不等于低層碼,計(jì)算其毛需求并匯總,匯總后的毛需求暫存;如果階層碼等于低層碼,計(jì)算毛需求并匯總,再計(jì)算凈需求[1]。
按照低層碼來(lái)計(jì)算物料的凈需求時(shí),每個(gè)物料只需計(jì)算一次,從而避免了重復(fù)計(jì)算而導(dǎo)致凈需求結(jié)果的不合理,也提高了計(jì)算效率。
2 基于低層碼的物料凈需求算法
2.1 通用物料凈需求計(jì)算公式
物料凈需求的通用計(jì)算公式為:凈需求量=毛需求量-預(yù)計(jì)庫(kù)存量=毛需求量+已分配量+安全庫(kù)存量-現(xiàn)有庫(kù)存量-計(jì)劃收到量[1]。
凈需求量是依據(jù)計(jì)算公式計(jì)算出來(lái)的物料實(shí)際需求數(shù)量。
毛需求量沒(méi)有考慮物料庫(kù)存、制造和采購(gòu)計(jì)劃情況下的物料需求量,是基于MPS中最終成品的需求數(shù)量,按BOM層層分解計(jì)算得到的需求量。對(duì)于最終成品(BOM中根結(jié)點(diǎn)),毛需求量=MPS需求量×(1+不良率),對(duì)于非最終成品,毛需求量= 父項(xiàng)的凈需求×用量因子×(1+不良率)。
預(yù)計(jì)庫(kù)存量(PAB)是現(xiàn)有庫(kù)存中可用于需求計(jì)算的那部分庫(kù)存量。預(yù)計(jì)庫(kù)存量=現(xiàn)有庫(kù)存量+計(jì)劃收到量-已分配量-安全庫(kù)存量。
已分配量是已經(jīng)分配了但還保存在倉(cāng)庫(kù)中的物料數(shù)量,這部分物料即將用去,要從現(xiàn)有庫(kù)存中除去。
計(jì)劃收到量分為采購(gòu)計(jì)劃量和生產(chǎn)計(jì)劃量?jī)深?,采?gòu)計(jì)劃量是已經(jīng)生成了采購(gòu)訂單并審核,但物料還沒(méi)有入庫(kù)的數(shù)量;生產(chǎn)計(jì)劃量是已下達(dá)生產(chǎn)計(jì)劃中沒(méi)有完成的數(shù)量。
2.2 低層碼等價(jià)分類
在做物料凈需求計(jì)算前,先對(duì)物料做基于低層碼的等價(jià)分類,分類方法為:遍歷相關(guān)BOM,計(jì)算每個(gè)結(jié)點(diǎn)的低層碼,然后對(duì)BOM分解,低層碼相同的物料歸類為一個(gè)集合,從而得到BOM的若干個(gè)物料集合Vj(j=0,1,……n),j為集合中物料的低層碼,每個(gè)集合中所有物料的低層碼相同。j=0時(shí),V0是最終產(chǎn)品集合,j=1時(shí),V1是低層碼為1的物料集合,以此類推。做凈需求計(jì)算時(shí),按照層次原則,先計(jì)算低層碼較小的集合中物料凈需求,然后計(jì)算低層碼較大的集合中的物料凈需求,即按V0→V1→V2……→Vn的順序計(jì)算。
2.3 算法描述
計(jì)算物料需求時(shí),先根據(jù)MPS計(jì)劃,從數(shù)據(jù)庫(kù)查找相關(guān)產(chǎn)品BOM,計(jì)算BOM中物料的低層碼。然后,根據(jù)物料低層碼劃分低層碼等價(jià)集合Vj,按低層碼從小到大的順序計(jì)算集合Vj中每一個(gè)物料的毛需求、預(yù)計(jì)庫(kù)存和凈需求。具體步驟如下:
第1步:依據(jù)MPS,查找相關(guān)BOM,計(jì)算相關(guān)BOM中結(jié)點(diǎn)低層碼,對(duì)物料按低層碼進(jìn)行劃分為等價(jià)集合Vj。
第2步:按低層碼從小到大的順序,選擇集合Vj。
第3步:從集合Vj中取出一個(gè)物料,轉(zhuǎn)入第三步。
第4步:計(jì)算該物料的毛需求量:如果物料是最終成品,則毛需求量=MPS成品需求量×(1+不良率),否則, 查找此物料在相關(guān)BOM中的所有父項(xiàng),通過(guò)公式“毛需求量= 父項(xiàng)的凈需求×用量因子×(1+不良率)”計(jì)算每個(gè)父項(xiàng)對(duì)子項(xiàng)的毛需求,并對(duì)此累加匯總。
第5步:計(jì)算該物料的預(yù)計(jì)庫(kù)存量:從數(shù)據(jù)庫(kù)中查詢?nèi)〉妙A(yù)計(jì)庫(kù)存量計(jì)算的相關(guān)數(shù)據(jù),利用公式“現(xiàn)有庫(kù)存量+計(jì)劃收到量-已分配量-安全庫(kù)存量”計(jì)算。
第6步:計(jì)算物料的凈需求:根據(jù)“凈需求量=毛需求量-預(yù)計(jì)庫(kù)存量”計(jì)算凈需求。如果凈需求計(jì)算結(jié)果小于等于0,則凈需求設(shè)為0;如果計(jì)算結(jié)果大于0,則凈需求為計(jì)算結(jié)果。
第7步:判斷集合Vj中是否還有物料沒(méi)有計(jì)算凈需求,如果有,轉(zhuǎn)到第3步,沒(méi)有的話轉(zhuǎn)到第8步。
第8步:判斷Vj是否為最后的一個(gè)集合,如果不是轉(zhuǎn)到第2步,如果是,則結(jié)束計(jì)算過(guò)程。
2.4 算法的改進(jìn)
在實(shí)際應(yīng)用中,物料可以分為A、B、C三類,A類物料價(jià)值大,物料種類少,在采購(gòu)時(shí)按需采購(gòu);B類物料價(jià)值一般,通常按固定周期批量采購(gòu);C類物料通常是價(jià)值小,物料種類多,適合一次性大批量采購(gòu)以降低采購(gòu)成本[6]。因此,在計(jì)算物料凈需求時(shí),可以只對(duì)A、B兩類物料做凈需求,減小計(jì)算的物料數(shù)量,可極大提高計(jì)算效率。
3 結(jié)束語(yǔ)
本文探討了MRP運(yùn)算中計(jì)算物料凈需求的算法,采用了基于低層碼的算法,在計(jì)算物料凈需求時(shí)對(duì)BOM按層計(jì)算轉(zhuǎn)換成對(duì)低階碼按層計(jì)算,控制了物料計(jì)算的順序,保證了運(yùn)算結(jié)果的正確,提高了計(jì)算的效率,在項(xiàng)目中得到了應(yīng)用,效果良好。
參考文獻(xiàn):
[1] 閃四清.ERP系統(tǒng)原理和實(shí)施[M].3版.北京:清華大學(xué)出版社,2012.
[2] 羅鴻,王忠民.ERP 原理·設(shè)計(jì)·實(shí)施[M].2版.北京:電子工業(yè)出版社,2003.
[3] 彭克勤.ERP中B0M的數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)[J].大眾科技,2010(4).
[4] 余銳林,吳順祥.基于低層碼的MRP算法研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2005(6).
[5] 程控,革揚(yáng).MRPII/ERP原理與應(yīng)用[M].3版.北京:清華大學(xué)出版社,2012.
[6] 燕福龍.大型企業(yè)ERP項(xiàng)目實(shí)施與應(yīng)用分析[M].北京:清華大學(xué)出版社,2013.