0 引言
物料清單(Bill of Material,BOM)主要是表達(dá)企業(yè)產(chǎn)品的結(jié)構(gòu)和產(chǎn)品中零部件的構(gòu)成關(guān)系。它是企業(yè)信息系統(tǒng)(如PDM,ERP等)中核心基礎(chǔ)數(shù)據(jù)之一,是企業(yè)的信息紐帶。產(chǎn)品設(shè)計(jì)、工藝編制、產(chǎn)品制造、產(chǎn)品銷售、成本核算等都要用到BOM。電柜生產(chǎn)企業(yè)是一種典型的多品種、少批量、離散型企業(yè),BOM數(shù)據(jù)非常龐大、復(fù)雜。在市場(chǎng)競爭日趨激烈的情況下,企業(yè)產(chǎn)品的技術(shù)狀態(tài)不得不隨著客戶的要求而不斷變化,導(dǎo)致了BOM數(shù)據(jù)的動(dòng)態(tài)改變,從而使BOM數(shù)據(jù)及其管理更加復(fù)雜化,所以對(duì)BOM的有效管理成為電柜生產(chǎn)企業(yè)管理中至關(guān)重要的環(huán)節(jié)。目前,對(duì)于電柜生產(chǎn)企業(yè)的BOM研究相對(duì)較少。研究主要集中在通用型BOM和大型航天產(chǎn)品BOM的研究。對(duì)于BOM結(jié)構(gòu),常用的存儲(chǔ)方法是利用關(guān)系型數(shù)據(jù)庫,采用規(guī)劃性或者基于與或關(guān)系存儲(chǔ),維護(hù)起來比較困難。本文提出了基于雙主鍵的存儲(chǔ)方式,明顯減低了數(shù)據(jù)的冗余,使得BOM的維護(hù)變得簡單。
1 電柜生產(chǎn)企業(yè)的BOM體系研究
電柜生產(chǎn)過程包括材料的選擇、供應(yīng)商的確定、工藝的設(shè)計(jì)、計(jì)劃制定以及質(zhì)量控制等諸多相關(guān)環(huán)節(jié),涉及的數(shù)據(jù)信息十分復(fù)雜,包括:材料信息、庫存信息、供應(yīng)商信息、工藝信息、計(jì)劃信息及質(zhì)量等。這些信息產(chǎn)生于不同的業(yè)務(wù)過程,又為不同的業(yè)務(wù)部門使用。由于缺乏全過程的電柜生產(chǎn)信息模型,使得信息被分割在相互獨(dú)立的應(yīng)用系統(tǒng)中,割裂了數(shù)據(jù)間的關(guān)聯(lián)性,成為信息孤島。這使得各部門、各過程間,數(shù)據(jù)無法及時(shí)共享,降低了電柜企業(yè)生產(chǎn)效率和管理水平,延長了產(chǎn)品的生產(chǎn)周期,減緩了資金的周轉(zhuǎn)速度。在當(dāng)前金融危機(jī)形勢(shì)下,資金周轉(zhuǎn)速度的快慢對(duì)企業(yè)生存是致命的。本文以BOM為切入點(diǎn),建立了面向全過程的電柜BOM轉(zhuǎn)換過程模型。
電柜生產(chǎn)企業(yè)以BOM作為信息管理的主要手段,在不同階段應(yīng)用不同的BOM。電柜設(shè)計(jì)定型后發(fā)放設(shè)計(jì)BOM。設(shè)計(jì)BOM的產(chǎn)品結(jié)構(gòu)表達(dá)了電柜按設(shè)計(jì)劃分而生成的結(jié)構(gòu)和零部件組成關(guān)系,并不表示生產(chǎn)中的真正裝配過程。出于對(duì)工藝方面和生產(chǎn)過程的考慮,工藝設(shè)計(jì)時(shí)需對(duì)設(shè)計(jì)BOM的產(chǎn)品結(jié)構(gòu)關(guān)系進(jìn)行一定程度的調(diào)整和修改(如增加、修改工藝構(gòu)型結(jié)點(diǎn)等),形成可制造的裝配工藝樹,在此基礎(chǔ)上進(jìn)行裝配工藝設(shè)計(jì)、加工工藝設(shè)計(jì)及工裝制造工藝設(shè)計(jì),并加入相應(yīng)的工藝信息。生產(chǎn)部門安排作業(yè)計(jì)劃、組織生產(chǎn),形成制造BOM。采購部門利用制造BOM生成采購BOM,以制定供應(yīng)計(jì)劃和采購計(jì)劃;財(cái)務(wù)和物資部門則基于整個(gè)過程的消耗,生成成本BOM,進(jìn)行成本核算、價(jià)格控制等。這些BOM數(shù)據(jù)之間具有相互關(guān)聯(lián)、轉(zhuǎn)化、衍生的關(guān)系,如圖1所示。BOM間的相互轉(zhuǎn)化關(guān)系也反映了各部門之間互相溝通、相互協(xié)作的過程。
圖1 電柜生產(chǎn)企業(yè)BOM體系結(jié)構(gòu)
從上面的分析,可以得出:在電柜生產(chǎn)的過程中,涉及到設(shè)計(jì)BOM、參數(shù)BOM、制造BOM、采購BOM和成本BOM。這些組成了電柜BOM體系結(jié)構(gòu)。
1)電柜設(shè)計(jì)BOM
電柜設(shè)計(jì)BOM信息來源一般是設(shè)計(jì)部門提供的成套設(shè)計(jì)圖紙中標(biāo)題欄和明細(xì)欄信息。它在設(shè)計(jì)結(jié)束時(shí)匯總產(chǎn)生,結(jié)構(gòu)往往是產(chǎn)品結(jié)構(gòu)樹的形式,樹上每個(gè)節(jié)點(diǎn)關(guān)聯(lián)各類屬性或圖形信息。它可以由四元組來表示,設(shè)計(jì)BOM={產(chǎn)品明細(xì)表、材料明細(xì)表、圖樣目錄、產(chǎn)品材料結(jié)構(gòu)表}。設(shè)計(jì)BOM面臨的一個(gè)約束條件就是材料參數(shù)BOM。
2)電柜材料參數(shù)BOM
材料參數(shù)BOM是由材料各個(gè)主要性能和材料間的相互約束關(guān)系構(gòu)成。如圖2就是一個(gè)典型的參數(shù)BOM。
圖2 互感器主要性能參數(shù)以及和刀開關(guān)、電流表的約束關(guān)系
互感器與刀開關(guān)、電流表產(chǎn)生了約束關(guān)系。材料參數(shù)BOM主要用于產(chǎn)品設(shè)計(jì)過程中,選擇材料的時(shí)候,縮小選擇范圍,方便操作。材料參數(shù)BOM={材料名稱,性能參數(shù),約束材料名稱集}
3)電柜制造BOM
電柜生產(chǎn)部門的制造BOM是在設(shè)計(jì)BOM的基礎(chǔ)上,根據(jù)電柜的工藝特點(diǎn)和裝配要求設(shè)計(jì)出來的,包括加工零部件和按工藝要求的毛胚、模具、卡具等。制造BOM={工藝路線表、關(guān)鍵工序匯總表、重要件關(guān)鍵件明細(xì)表、自制件明細(xì)表、通用件明細(xì)表、通用專用工裝明細(xì)表、設(shè)備明細(xì)表、車間作業(yè)計(jì)劃}。
4)電柜采購BOM
電柜采購BOM是根據(jù)制造BOM要求外購的原材料、標(biāo)準(zhǔn)件和成套部件等產(chǎn)生的。一般來源于設(shè)計(jì)圖紙和工藝卡片上信息匯總。由采購部門或生產(chǎn)準(zhǔn)備部門根據(jù)其安排采購計(jì)劃。采購BOM={外購件明細(xì)表、供應(yīng)商信息、供應(yīng)商提供的材料信息}。
5)電柜成本BOM
電柜成本BOM是根據(jù)企業(yè)從接收到訂單開始至訂單處理完,整個(gè)過程的消耗。一般由財(cái)務(wù)部門根據(jù)企業(yè)定義的零件標(biāo)準(zhǔn)成本、建議成本、現(xiàn)行成本,進(jìn)行處理。
2 電柜生產(chǎn)企業(yè)BOM樹數(shù)學(xué)模型及BOM樹操作
2.1 BOM的本質(zhì)
BOM的本質(zhì)是一棵帶有權(quán)重的樹,即一個(gè)連通且無回路的無向圖。
圖3 BOM的權(quán)重樹表示
圖3就是一個(gè)典型的BOM樹。這棵“樹”的特殊之處在于它有二個(gè)根結(jié)點(diǎn)。這并不影響到對(duì)問題的討論。處于頂層的a節(jié)點(diǎn)和b節(jié)點(diǎn)是樹的根結(jié)點(diǎn)。用v表示BOM圖中節(jié)點(diǎn)的個(gè)數(shù),e表示BOM圖中弧的數(shù)目。如果二個(gè)節(jié)點(diǎn)間直接通過弧鏈接,顯然它們之間存在父子關(guān)系。BOM樹滿足如下的性質(zhì):
1)BOM樹是無回路的連通圖:
2)BOM樹是無回路的,而且滿足e=v-1;
3)BOM樹是連通的,而且滿足e=v-1;
4)BOM是無回路的,若在其中任意二個(gè)節(jié)點(diǎn)之間新增加一條弧,則必得且僅得一個(gè)回路;
5)BOM是連通的,如在其中任意刪去一條弧,則BOM樹一定不連通;
6)BOM中任何一對(duì)節(jié)點(diǎn)之間有且僅有一條通路。
2.2 BOM樹表示及其向關(guān)系型數(shù)據(jù)庫的轉(zhuǎn)化
對(duì)于BOM樹的表示是BOM設(shè)計(jì)中最重要的一個(gè)環(huán)節(jié)。這里,提出節(jié)點(diǎn)向上表示方法:通過三元組:Node={α,β,n}。三元組中第一個(gè)元素Q表示節(jié)點(diǎn)本身,第二個(gè)元素B表示該節(jié)點(diǎn)的父節(jié)點(diǎn),第三個(gè)元素n表示該子節(jié)點(diǎn)裝配父節(jié)點(diǎn)時(shí)的數(shù)量關(guān)系。如:圖3中的d={d,a,4}。這種方法對(duì)于根結(jié)點(diǎn)的表示就比較特殊,如a節(jié)點(diǎn),a={a,a,1}。
節(jié)點(diǎn)向上表示方法,可以采用基于數(shù)據(jù)庫的雙主鍵進(jìn)行存儲(chǔ),與通常的規(guī)劃性或者與或技術(shù)來實(shí)現(xiàn)樹狀結(jié)構(gòu)存儲(chǔ)有不少的優(yōu)點(diǎn):減少了數(shù)據(jù)的冗余;可以實(shí)現(xiàn)級(jí)數(shù)無限:子節(jié)點(diǎn)的復(fù)制和刪除很簡單,為便于討論,建立如表1的一個(gè)關(guān)系型數(shù)據(jù)庫表格。它省略了與討論無關(guān)的字段。
表1 BOM表字段信息
對(duì)于樹結(jié)構(gòu)而言,通常的操作有:深度遍歷,搜索一個(gè)節(jié)點(diǎn)的所有左節(jié)點(diǎn),然后再搜索右邊的節(jié)點(diǎn);廣度遍歷,生成每一個(gè)節(jié)點(diǎn)的層次號(hào),將根節(jié)點(diǎn)看作是第一層節(jié)點(diǎn),然后把根節(jié)點(diǎn)的下一級(jí)節(jié)點(diǎn)作為子節(jié)點(diǎn);查找子節(jié)點(diǎn),通過已知節(jié)點(diǎn),查詢?cè)摴?jié)點(diǎn)的所有子節(jié)點(diǎn);查找父節(jié)點(diǎn):通過已知節(jié)點(diǎn),查詢?cè)摴?jié)點(diǎn)的所有父節(jié)點(diǎn);節(jié)點(diǎn)刪除;節(jié)點(diǎn)復(fù)制;節(jié)點(diǎn)修改;校驗(yàn)。下面,重點(diǎn)討論查詢子節(jié)點(diǎn)和校驗(yàn)二種算法。其他的類似。
基于BOM建立的系統(tǒng),采用存儲(chǔ)過程比較科學(xué),可以減少網(wǎng)絡(luò)通信量,執(zhí)行的速度快,提高系統(tǒng)的響應(yīng)速度;較強(qiáng)的適應(yīng)性和安全性。所以,這里的算法也是基于存儲(chǔ)過程實(shí)現(xiàn)的。
2.3 基于存儲(chǔ)過程的子節(jié)點(diǎn)查詢算法
遍歷子節(jié)點(diǎn),通常有三種算法:前序遍歷、中序遍歷、后序遍歷。所謂前序遍歷是第一次經(jīng)過節(jié)點(diǎn)的時(shí)候,進(jìn)行訪問;中序遍歷(或后序遍歷)是第二次(或第三次)經(jīng)過節(jié)點(diǎn)的時(shí)候,進(jìn)行訪問。它們的時(shí)間復(fù)雜度都為0(n)。這里,采用了一個(gè)種近似中序遍歷算法。算法分三部分:第一部分是建立臨時(shí)的表空間:第二部分是通過關(guān)聯(lián)關(guān)系,對(duì)BOM表進(jìn)行關(guān)聯(lián)循環(huán)操作;第三部分是讀取需要的子節(jié)點(diǎn)信息。算法的輸入?yún)?shù)是待求節(jié)點(diǎn)編號(hào),算法主要代碼如下:
2.4 編碼校驗(yàn)算法
電柜生產(chǎn)企業(yè)BOM樹存儲(chǔ)了大量的數(shù)據(jù)信息,經(jīng)常進(jìn)行導(dǎo)人數(shù)據(jù)、增加、修改、刪除等操作。在這個(gè)過程中,由于人為的或者程序本身的原因,很容易破壞BOM的結(jié)構(gòu),所以對(duì)BOM的編碼進(jìn)行校驗(yàn)是必要的。對(duì)于BOM編號(hào)的校驗(yàn),重點(diǎn)是考察二個(gè)方面的內(nèi)容:
1)是否形成了循環(huán)節(jié)點(diǎn)。如B是A的子節(jié)點(diǎn),C是B的子節(jié)點(diǎn),A又是C的子節(jié)點(diǎn)。這就形成了一個(gè)循環(huán),顯然違背了實(shí)際情況。
2)是否存在無父節(jié)點(diǎn)的情況。如果存在沒有父節(jié)點(diǎn)的節(jié)點(diǎn),同時(shí)它又不是根節(jié)點(diǎn),顯然它也不是合法的節(jié)點(diǎn)。
進(jìn)行編號(hào)校驗(yàn),常用的方法是遞歸和游標(biāo)跟蹤。對(duì)于數(shù)據(jù)庫而言,游標(biāo)是一種十分昂貴的資源,打開和關(guān)閉游標(biāo)會(huì)消耗系統(tǒng)很多的資源,所以,這里,我們放棄使用這二種方式,采用循環(huán)操作。算法分為三個(gè)部分:第一部分是設(shè)置相關(guān)變量;第二部分是通過關(guān)聯(lián)關(guān)系,對(duì)BOM表進(jìn)行關(guān)聯(lián)循環(huán)操作,并將讀取的結(jié)果放入到臨時(shí)的一個(gè)變量中;第三部分是顯示結(jié)果信息。主要代碼如下:
3 電柜生產(chǎn)企業(yè)BOM管理應(yīng)用案例
基于前面的理論方法,結(jié)合具體企業(yè)的實(shí)際需求,開發(fā)了電柜生產(chǎn)企業(yè)BOM管理系統(tǒng),BOM配置界面如圖4所示。
圖4 BOM配置界面
系統(tǒng)整體上采用B/S結(jié)構(gòu),體系結(jié)構(gòu)如圖5所不。
圖5 BOM管理系統(tǒng)結(jié)構(gòu)
1)用戶界面層為用戶提供了與系統(tǒng)交互的接口。通過該層,用戶可以提交請(qǐng)求。
2)業(yè)務(wù)邏輯封裝層是系統(tǒng)的核心,它負(fù)責(zé)處理來自用戶頁面層傳遞過來的客戶請(qǐng)求,同時(shí)將處理結(jié)果以SqlDataReader或者DataTable的形式返回給用戶。SqIDataReader返回的是單個(gè)處理數(shù)據(jù),而DataTable則表現(xiàn)為數(shù)據(jù)集。這二個(gè)類是C#數(shù)據(jù)庫操作常用的類。
3)公共訪問層封裝了業(yè)務(wù)邏輯層各種對(duì)數(shù)據(jù)庫的可能操作,保證了系統(tǒng)與數(shù)據(jù)庫連接的唯一性,提高了安全性。同時(shí)在該層使用連接池技術(shù),提高數(shù)據(jù)庫的訪問速度。
4)數(shù)據(jù)存儲(chǔ)層存儲(chǔ)了企業(yè)大量的信息數(shù)據(jù),如:企業(yè)人員信息、設(shè)計(jì)BOM信息、材料參數(shù)BOM、制造BOM信息、采購BOM信息、成本BOM信息等。它為業(yè)務(wù)邏輯層提供各種相關(guān)數(shù)據(jù)。
4 結(jié)束語
BOM管理是電柜生產(chǎn)企業(yè)的核心問題之一。文章重點(diǎn)討論了電柜生產(chǎn)企業(yè)的BOM模型體系結(jié)構(gòu),給出了五種BOM形式。通過數(shù)學(xué)模型,對(duì)BOM樹進(jìn)行了表示,并在關(guān)系型數(shù)據(jù)庫進(jìn)行存儲(chǔ)和定義;谠撃P偷腂OM管理系統(tǒng)已經(jīng)在某電柜生產(chǎn)企業(yè)應(yīng)用,并且取得了不錯(cuò)的經(jīng)濟(jì)效益。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:電柜生產(chǎn)企業(yè)BOM體系結(jié)構(gòu)研究與應(yīng)用
本文網(wǎng)址:http://www.oesoe.com/html/solutions/14019314923.html