專利名稱:低階碼計算系統(tǒng)和方法
技術領域:
本發(fā)明涉及一種物料需求規(guī)劃系統(tǒng)和方法,尤指一種物料需求規(guī)劃系統(tǒng)中計算物料低階碼的系統(tǒng)和方法。
背景技術:
生產任何一個產品都需要一份清單(list)說明它是由哪些材料構成,并依據(jù)它來計算所需的物料。傳統(tǒng)的材料表(part list)是一份清單,它的主要功能是說明一個產品是由哪些零件或原料所構成以及用量多少,但自從物料需求計劃(Material Requirement Planning;MRP)于1970年發(fā)展之后,材料清單演變成用料表(Bill of Material;BOM),其功能增加了許多,而其本身也成為一個產品結構(Product Structure)。一份用料表(BOM)不僅列出構成一個項目的所有零件,也將半成品考慮進去,由父項(parentitem)和其子項(component item)連結而成,其中每一項都有一個階碼,成品(最終項目)位于0階,其余由1、2......階依序往下,直至最低階,同一項目若出現(xiàn)在不同產品的不同階上,會由系統(tǒng)產生低階碼(Low LevelCode;LLC)。用料表中各項目的低階碼表明了該項目被用作較高階成品或半成品部件的最低階次。一般來說,成品(最終項目)處于最高階次,它的低階碼為零。在用料表中階次越低,其低階碼的數(shù)值就越大。
物料需求規(guī)劃(MRP)使用用料表(BOM)、庫存數(shù)據(jù)以及主生產排程(MPS)等計算物料的需求,它具有時程化的功能。時程化的MRP從MPS的項目開始展開計算,然后決定要生產這些MPS的項目所需要的原料或零件及其數(shù)量,以及這些原料或零件需要的日期。時程化的MRP是由展開用料表、調整庫存和未完成訂單的數(shù)量,并依照合適的前置時間對凈需求作逆推(offsetting)而得。然而,企業(yè)所應用的MRP應用軟件缺乏低階碼(low-level code)計算的功能,使用者自己還要計算。這樣使得用料表在物料需求規(guī)劃中的應用效率大為降低。因此需要一種系統(tǒng)和方法以輔助計算物料需求計劃中所用物料的低階碼。
發(fā)明內容針對上述現(xiàn)有技術的不足,本發(fā)明提供一種計算低階碼的系統(tǒng)和方法,其可輔助計算物料需求規(guī)劃所用用料表中物料的低階碼。
本發(fā)明所提供的低階碼計算系統(tǒng)包括有一數(shù)據(jù)庫,用于存儲用料表以及產品結構圖;一數(shù)據(jù)讀取單元,用于從數(shù)據(jù)庫中讀取用料表;一數(shù)據(jù)賦值單元,用于初始化用料表的低階碼字段以及給用料表中每一料號設定一低階碼;一數(shù)據(jù)判斷單元,用于判斷用料表中的料號是否存在于用料表中一指定字段中,以及一數(shù)據(jù)計算單元,用于計算用料表中指定料號的筆數(shù)。
本發(fā)明提供的低階碼計算方法包括如下的步驟(a)將一變量LLC之值初始化為零,并將用料表中的低階碼字段設為空;(b)讀取用料表中的第一筆料號;(c)判斷所讀取的料號是否存在于用料表的子項字段中;(d)如果步驟(c)中判斷所讀取的料號不存在于用料表的子項字段中,則將該筆料號的低階碼設為零,否則讀取下一筆料號并返回步驟(c);(e)判斷是否用料表中所有料號均已讀取完畢;(f)如果步驟(e)中判斷所有料號已讀取完畢,則將變量LLC加1,并讀取用料表中的第一筆料號;(g)判斷該筆料號的低階碼字段是否為空;(h)如果該筆料號的低階碼字段為空,計算用料表中子項料號為該料號且父項的低階碼為該變量減1的筆數(shù),反之則讀取下一筆料號并返回步驟(g);(i)如果步驟(h)中所計算的筆數(shù)不為零,則計算用料表中子項料號為該料號且父項的低階碼為該變量的筆數(shù),否則讀取下一筆料號并返回步驟(g);(j)如果步驟(i)中所計算的用料表中子項料號為該料號且父項的低階碼為該變量的筆數(shù)為零,則將該筆料號的低階碼設定為該變量之值,否則讀取下一筆料號并返回步驟(g);(k)如果該次循環(huán)中用料表中所有料號均已讀取完畢,則檢查用料表中所有料號是否均已設定低階碼;(l)如果用料表中還有其它料號沒有設定低階碼,則返回步驟(f)以進行下一循環(huán)的計算,否則整個計算流程結束。
采用本發(fā)明所述的低階碼計算系統(tǒng)和方法,可借助計算機自動計算用料表中各項目的低階碼,提高了物料需求規(guī)劃應用的效率。
圖1是本發(fā)明一產品結構圖的低階碼排列示意圖。
圖2是本發(fā)明一用料表的示意圖。
圖3是本發(fā)明低階碼計算系統(tǒng)的軟件構成圖。
圖4是本發(fā)明低階碼計算方法的作業(yè)流程圖。
圖5是圖4中所示低階碼計算方法作業(yè)流程圖的續(xù)圖。
具體實施方式圖1所示為一種產品結構圖的低階碼排列圖。一產品結構圖可被視為是一種樹狀結構。在樹的頂端是成品(最終項目),其低階碼為零。如圖1中所示之A、K即為成品,相應的其低階碼亦為零(括號中所示)。所有的子項的低階碼數(shù)值均大于成品(最終項目)的低階碼數(shù)值。如產品A的結構圖中B和C的低階碼分別為1和2。對于被重復使用的子項,如產品A的結構圖中所示的C、X、Y和Z等項目,其在產品結構圖中所用到的最大階次的數(shù)值即被設定為該項目之低階碼。亦即,低階碼表示一被重復應用的子項在整個產品結構圖中被使用的最低階次。
圖2所示為本發(fā)明中所用的一種用料表200的示意圖,其基于圖1中A的產品結構圖所列。在該用料表中,共表示出了如下四項字段父項料號201、子項料號203、單位用量205以及低階碼207。其中,子項料號203表示父項料號201字段中所示父項由哪些子項所構成,單位用量205表示構成一個單位的該父項所需子項的數(shù)量,低階碼字段207中所示為對應字段中父項的低階碼。
圖3所示為本發(fā)明低階碼計算系統(tǒng)的軟件構成圖。在本實施方式中,本發(fā)明低階碼計算系統(tǒng)包括有一數(shù)據(jù)庫301、一數(shù)據(jù)讀取單元303、一數(shù)據(jù)賦值單元305、一數(shù)據(jù)判斷單元307以及一數(shù)據(jù)計算單元309。數(shù)據(jù)庫301內主要存儲有物料需求規(guī)劃所需物料的用料表或產品結構表。數(shù)據(jù)讀取單元303用于從數(shù)據(jù)庫301內獲取用料表或產品結構表,從而讀取用料表或產品結構表中物料(項目)的料號。數(shù)據(jù)賦值單元3 05用于初始化用料表的低階碼字段以及給用料表中的每一料號設定一低階碼。數(shù)據(jù)判斷單元307用于判斷用料表中的料號是否存在于用料表中一指定字段中。數(shù)據(jù)計算單元309用于計算用料表中指定料號的筆數(shù)。
圖4所示為本發(fā)明低階碼計算方法的作業(yè)流程圖。在該作業(yè)流程中,先確定產品結構圖中最終項目的低階碼,然后再確定其它子項項目的低階碼。在步驟S401,數(shù)據(jù)賦值單元305首先將一變量LLC之值初始化為0。該變量LLC用來在后面的流程中作為循環(huán)值,以確定在每一循環(huán)中所確定項目的低階碼值。在步驟S403,數(shù)據(jù)賦值單元305將用料表中的低階碼字段設置為空,以利后續(xù)的作業(yè)流程。在步驟S405,數(shù)據(jù)讀取單元303讀取用料表中的第一筆料號。如讀取用料表200的父項料號字段中的第一筆料號A。在步驟S407,數(shù)據(jù)判斷單元307判斷該料號是否存在于用料表的子項料號字段中。如該料號存在于用料表的子項料號字段中,則轉至步驟S409讀取下一筆料號以繼續(xù)進行判斷。如當讀取到料號B時,由于料號B在子項料號字段內存在,則跳過該筆料號讀取下一筆料號。該筆料號B的低階碼字段仍然為空白。反之,如果在用料表的子項料號字段中沒有該料號,則在步驟S411,數(shù)據(jù)賦值單元305將該筆料號的低階碼設置為變量LLC的初始值“0”。如在用料表200的子項料號字段中沒有上述所讀取的料號A,則該筆料號A的低階碼被設為0,亦即該筆料號A為最終項目(成品)。在步驟S413,數(shù)據(jù)判斷單元判斷是否用料表中的所有料號均已讀取完畢。如果還未讀取完畢,則轉至步驟S409讀取下一筆料號以繼續(xù)進行判斷。
圖5是圖4所示低階碼計算方法作業(yè)流程圖的續(xù)圖。在圖4所示步驟S413,如果數(shù)據(jù)判斷單元判斷用料表中的所有料號已讀取完畢,則轉至圖5所示步驟S415。在步驟S415,數(shù)據(jù)計算單元309將變量LLC之值加1,亦即此時變量LLC之值變?yōu)榱?。在步驟S417,數(shù)據(jù)讀取單元303讀取用料表中的第一筆料號,亦即料號A。在步驟S419,數(shù)據(jù)判斷單元307判斷該筆料號的低階碼字段是否為空。如果不為空,說明該筆料號已設定低階碼,則轉至步驟S421讀取下一筆料號以進行判斷。由于料號A在前述流程中已設定低階碼,所以在此流程中會循環(huán)讀取直至讀取到料號B,料號B的低階碼字段此時仍然為空。當所讀取料號的低階碼字段為空時,在步驟S423,數(shù)據(jù)計算單元309計算用料表中子項料號為該料號且父項的低階碼為變量LLC之值減1的筆數(shù),亦即在此循環(huán)中子項料號為該料號且父項之低階碼為0的筆數(shù)。在步驟S425,數(shù)據(jù)判斷單元307確定該筆數(shù)是否為零。如果為零,則轉至步驟S421讀取下一筆料號以進行判斷。反之,如果不為零,在步驟S427,數(shù)據(jù)計算單元309計算用料表中子項料號為該料號且父項的低階碼為變量LLC之值的筆數(shù)。在用料表200中,B為A之子項,且A之低階碼為零,即變量LLC減1之值。此時需由數(shù)據(jù)計算單元309計算用料表中子項料號為B且父項的低階碼為變量LLC之值,亦即低階碼為1的筆數(shù)。
在步驟S429,數(shù)據(jù)判斷單元307確定用料表中子項料號為所讀取料號且父項的低階碼為變量LLC之值的筆數(shù),在此循環(huán)中亦即子項料號為B且父項的低階碼為1的筆數(shù)是否為零。如果不為零,則轉至步驟S421讀取下一筆料號以進行判斷。反之,如果為零,在步驟S431,數(shù)據(jù)賦值單元305將所讀取料號的低階碼設定為變量LLC之值,在此循環(huán)中亦即將料號B的低階碼設定為1。
在步驟S433,數(shù)據(jù)判斷單元307判斷此循環(huán)中是否所有的料號均已讀取完畢。如果該次循環(huán)中用料表中的料號還未讀取完畢,則轉至步驟S421讀取下一筆料號以進行判斷。如果該次循環(huán)中用料表中所有的料號均已讀取完畢,在步驟S435,數(shù)據(jù)判斷單元307判斷是否用料表中的所有料號均已設定低階碼。如果還有料號沒有設定低階碼,則轉至步驟S415,將變量LLC再加1,并進行下一循環(huán)的計算。如果用料表中的所有料號均已設定低階碼,則整個計算流程結束。
權利要求
1.一種低階碼計算系統(tǒng),用于輔助計算用料表中所包含項目的低階碼,其特征在于包括一數(shù)據(jù)庫,用于存儲用料表以及產品結構圖;一數(shù)據(jù)讀取單元,用于從數(shù)據(jù)庫中讀取用料表;一數(shù)據(jù)賦值單元,用于初始化用料表中的低階碼字段以及給用料表中每一料號設定一低階碼;一數(shù)據(jù)判斷單元,用于判斷用料表中的料號是否存在于用料表中一指定字段中。
2.如權利要求1所述的低階碼計算系統(tǒng),其特征在于還包括有一數(shù)據(jù)計算單元,用于計算用料表中指定料號的筆數(shù)。
3.如權利要求2所述的低階碼計算系統(tǒng),其特征在于數(shù)據(jù)判斷單元還用于判斷所計算的筆數(shù)與一指定值的大小。
4.如權利要求1所述的低階碼計算系統(tǒng),其特征在于數(shù)據(jù)賦值單元在進行低階碼計算前將用料表的低階碼字段設置為空。
5.如權利要求4所述的低階碼計算系統(tǒng),其特征在于數(shù)據(jù)賦值單元在進行低階碼計算前還將一變量值初始化為0。
6.如權利要求4所述之低階碼計算系統(tǒng),其特征在于數(shù)據(jù)判斷單元還用于判斷用料表中料號的低階碼字段是否為空。
7.一種低階碼計算方法,用于輔助計算用料表中所包含項目的低階碼,其特征在于包括有如下步驟(a)將一變量LLC初始化為零,并將用料表中的低階碼字段設置為空;(b)讀取用料表中的第一筆料號;(c)判斷所讀取的料號是否存在于用料表的子項字段中;(d)如果步驟(c)中判斷所讀取的料號不存在于用料表的子項字段中,則將該筆料號的低階碼設為零;(e)判斷是否用料表中所有料號已讀取完畢;(f)如果步驟(e)中判斷所有料號已讀取完畢,則確定其它項目的低階碼。
8.如權利要求7所述的低階碼計算方法,其特征在于步驟(d)更包括有當判斷所讀取的料號存在于用料表的子項字段中時,讀取下一筆料號并返回步驟(c)的步驟。
9.如權利要求7所述的低階碼計算方法,其特征在于步驟(f)更包括有當判斷用料表中料號還未讀取完畢時,讀取下一筆料號并返回步驟(c)的步驟。
10.如權利要求7所述的低階碼計算方法,其特征在于步驟(f)更包括有如下步驟(f1)將變量LLC加1;(f2)讀取用料表中的第一筆料號;(f3)判斷該筆料號的低階碼字段是否為空;(f4)如果該筆料號的低階碼字段為空,計算用料表中子項料號為該料號且父項的低階碼為該變量減1的筆數(shù);(f5)如果步驟(f4)中所計算的筆數(shù)不為零,則計算用料表中子項料號為該料號且父項的低階碼為該變量的筆數(shù),否則讀取下一筆料號并返回步驟(f3);(f6)如果步驟(f5)中所計算的用料表中子項料號為該料號且父項的低階碼為該變量的筆數(shù)為零,則將該筆料號的低階碼設定為該變量之值,否則讀取下一筆料號并返回步驟(f3);(f7)如果該次循環(huán)中用料表中所有料號均已讀取完畢,則檢查是否用料表中所有料號均已設定低階碼;(f8)如果用料表中所有料號均已設定低階碼,則整個流程結束。
11.如權利要求10所述之低階碼計算方法,其特征在于步驟(f8)更包括有如下步驟如果用料表中還有其它料號沒有設定低階碼,則返回步驟(f1)以進行下一循環(huán)的計算。
全文摘要
本發(fā)明提供有一種低階碼計算系統(tǒng)和方法,該系統(tǒng)包括有一數(shù)據(jù)庫,用于存儲用料表以及產品結構圖;一數(shù)據(jù)讀取單元,用于從數(shù)據(jù)庫中讀取用料表;一數(shù)據(jù)賦值單元,用于初始化用料表的低階碼字段以及給用料表中每一料號設定一低階碼;一數(shù)據(jù)判斷單元,用于判斷用料表中的料號是否存在于用料表中一指定字段中,以及一數(shù)據(jù)計算單元,用于計算用料表中指定料號的筆數(shù)。采用本發(fā)明低階碼計算系統(tǒng)和方法,可通過計算機設定用料表中各項目的低階碼,提高物料需求規(guī)劃的效率。
文檔編號G06F17/00GK1508716SQ0214965
公開日2004年6月30日 申請日期2002年12月14日 優(yōu)先權日2002年12月14日
發(fā)明者魏鴻珊 申請人:鴻富錦精密工業(yè)(深圳)有限公司, 鴻海精密工業(yè)股份有限公司