版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
73/73JIT看板生產(chǎn)系統(tǒng)WITNESS仿真建模和優(yōu)化實現(xiàn)1.1生產(chǎn)流程描述實例系統(tǒng)生產(chǎn)制造單一類型的產(chǎn)品——振動輪,其生產(chǎn)原材料為各種類型的鋼板,通過機械加工,然后組裝成一個空輪(沒有安裝軸承座、軸承和軸)。組成振動輪的部件主要為5類,分別為外圈、內(nèi)圈、加強筋、內(nèi)隔板和封口板,以數(shù)字1,2,3,4,5表示;其生產(chǎn)過程包括12個主要加工單元,分別為剪板切割(WS1)、打坡口(WS2)、卷圓(WS3)、輪圈焊接(WS4)、找圓(WS5)、車斷面(WS6)、數(shù)控切割(WS7)、調(diào)平(WS8)、油漆(WS9)、鉆孔(WS10)、內(nèi)輪焊接(分裝工作站)和輪子焊接(總裝工作站)。其生產(chǎn)流程如圖5.1所示。111,5產(chǎn)成品6需求314,53,4,53,4,51,21,21,2WS1WS21,2WS3WS4WS5WS7WS8WS9WS12WS10WS112物料流看板流WS:工作站圖5.1實例生產(chǎn)/庫存系統(tǒng)生產(chǎn)流程圖4WS6外圈原材料為特定型號的鋼板,加工過程依次為兩塊外圈鋼板通過卷板切割機切割成適合大小,通過坡口機將鋼板兩端結(jié)合處內(nèi)外打出坡度,通過卷圓機將鋼板卷成輪圈,經(jīng)過輪圈焊接工段將輪圈接口處焊接起來,通過找圓機將輪圈找圓,然后進入輪子焊接工段,與內(nèi)輪和封口板焊接成輪子。內(nèi)圈原材料也為特定型號的鋼板,加工過程為每次三塊鋼板通過卷板切割機切割成適合大小的板材,然后打坡口、卷圓、焊接、找圓,同外圈加工過程一樣。在經(jīng)過找圓工段之后,內(nèi)輪圈再經(jīng)過數(shù)控車床,進行端面對車,經(jīng)過鉆孔工段鉆出工藝孔,到內(nèi)輪焊接工段與加強筋和內(nèi)隔板焊接成內(nèi)輪。加強筋、內(nèi)隔板和封口板原材料也為特定型號的鋼板,首先經(jīng)過數(shù)控切割機切割成型,然后調(diào)平、油漆,內(nèi)隔板和封口板需要經(jīng)過鉆口工段,鉆制工藝孔,然后,內(nèi)隔板到內(nèi)輪焊接工段進行與內(nèi)圈和加強筋的焊接,封口板到輪子焊接工段與內(nèi)輪和外圈焊接成輪子。1.2基本生產(chǎn)單元的分解該生產(chǎn)/庫存系統(tǒng)包括四條串行線,分別為:(1)外圈加工串行線:剪板切割、打坡口、卷圓、輪圈焊接、找圓;(2)內(nèi)圈加工串行線:剪板切割、打坡口、卷圓、輪圈焊接、找圓、車端面、鉆孔;(3)加強筋加工串行線:數(shù)控切割、調(diào)平、油漆;(4)內(nèi)隔板、封口板加工串行線:數(shù)控切割、調(diào)平、油漆、鉆孔。該生產(chǎn)/庫存系統(tǒng)包括兩個并行加工模塊,分別為:(1)內(nèi)圈、加強筋、內(nèi)隔板焊接為內(nèi)輪的焊接工段,即分裝工作站W(wǎng)S11;(2)外圈、內(nèi)輪、封口板焊接為輪子的輪子焊接工段,即總裝工作站W(wǎng)S12。生產(chǎn)流程中有資源共享和競爭的作業(yè),如:(1)內(nèi)、外圈在進行切割、打坡口、卷圓、焊接等工序時,使用的都是相同的設(shè)備;(2)加強筋、內(nèi)隔板、封口板在進行切割、調(diào)平工序時,也是競爭使用相同的設(shè)備。1.3系統(tǒng)績效指標(biāo)設(shè)計系統(tǒng)績效指標(biāo)考慮系統(tǒng)產(chǎn)出量、在制品庫存、設(shè)備稼動率和訂單滿意度四項。在進行Witness仿真程序設(shè)計的時候,將通過如下的數(shù)據(jù)模型和相關(guān)的程序進行統(tǒng)計計算獲得。(1)系統(tǒng)產(chǎn)出量(TPUT,ThroughPUT):統(tǒng)計在特定時間長度內(nèi),生產(chǎn)/庫存系統(tǒng)所產(chǎn)出的成品數(shù)量。該指標(biāo)在Witness中可以直接在成品緩沖區(qū)的“actiononinput…”中進行變量的累計。每當(dāng)一個成品進入緩沖區(qū),執(zhí)行式(5-1)的計算程序,即產(chǎn)出量增加了一個。TPUT=TPUT+1(5-1)在仿真模型中,該統(tǒng)計任務(wù)由訂單隊列DMD.b_order的“actiononinput…”和函數(shù)UF.tput來實現(xiàn),具體程序參看附錄B部分。(2)在制品庫存(WIP):用來統(tǒng)計某一時點上,生產(chǎn)/庫存系統(tǒng)中所擁有的原材料、半成品或成品的量,一般用價值來衡量。由于生產(chǎn)線上具有多種物料,如外圈、內(nèi)圈、加強筋、封口板、內(nèi)隔板,每種類型物料所具有的價值不一樣,需要統(tǒng)計各種物料的實際價值。由于本實例并不是對實際的問題進行研究,僅僅是提供一種研究方法,所以為了便于對各種方案進行經(jīng)濟性比較,根據(jù)每件產(chǎn)品或部件的價值,給予它們附上對應(yīng)的價值權(quán)重,然后進行統(tǒng)計計算。假設(shè)加強筋最便宜,以它為1,每件物料經(jīng)過一道工序加工后,每加工10分鐘,價值增加一個單位,不足10分鐘的按10分鐘計,得出實例系統(tǒng)中物料的價值權(quán)重系數(shù)如表5.1,表中下劃線前的字符為物料名稱中文首字母。表5.1物料價值權(quán)重系數(shù)表*名稱Jqj_WS7Fkb_WS7Ngb_WS7Jqj_WS8Fkb_WS8Ngb_WS8Jqj_WS9fkb_WS9ngb_WS9權(quán)重122244355名稱Wq_WS1Nq_WS1Wq_WS2Nq_WS2Wq_WS3Nq_WS3Wq_WS4Nq_WS4Wq_WS5權(quán)重303035343837444247名稱Nq_WS5Nq_WS6Nq_WS10Fkb_WS10Ngb_WS10WS11WS12權(quán)重4449528883151系統(tǒng)中的在制品庫存WIP計算公式如式(5-2):(5-2)式中:——第i種物料在各工序后的緩沖區(qū)中的數(shù)量;——第i種物料在各工序機器上等待加工或正在加工的數(shù)量;——第i種物料在各工序間運輸工具上的數(shù)量;——第i種物料的價值權(quán)重。在該系統(tǒng)的仿真模型中,某一仿真時點上的QFi、QMi、QTi都可以通過Witness提供的函數(shù)直接得出。該指標(biāo)的統(tǒng)計由目標(biāo)函數(shù)UF.wip來計算,具體設(shè)計參看附錄B部分。(3)定單平均等待時間(AWT,AverageWaitingTime):用于統(tǒng)計沒能夠及時被滿足的訂單在系統(tǒng)中的平均等待時間,用來揭示隨機生產(chǎn)/庫存系統(tǒng)對訂單的反應(yīng)靈敏度。如果某一訂單在提前期之前得到滿足,則等待時間為零;如果某一訂單在提前期之后得到滿足,則等待時間為當(dāng)前時間與提前期的差值。該指標(biāo)數(shù)值越低,表示顧客滿意度越高;該指標(biāo)數(shù)值越高,表示顧客滿意度越低。計算公式如式(5-3)所示。WTi=WTi=Ti’-Ti0Ti’>TiTi’≤Ti式中:n——仿真期間訂單總數(shù);Ti’——第i批訂單實際發(fā)運時間;Ti——第i批訂單預(yù)定發(fā)運時間;WTi——第i批訂單的等待時間;SWT——仿真期間訂單總等待時間。在仿真模型中,這兩項統(tǒng)計任務(wù)統(tǒng)一在訂單處理單元中執(zhí)行。執(zhí)行程序體參見附錄B中DMD.demand_meet的“Actionsonfinish”部分。(4)設(shè)備平均稼動率(OR,OperationRate):用于統(tǒng)計生產(chǎn)系統(tǒng)中機器利用程度,仿真系統(tǒng)對機器類型的元素提供了標(biāo)準(zhǔn)狀態(tài)統(tǒng)計函數(shù),可以統(tǒng)計機器的空閑、運行、故障和維修等狀態(tài)所占時間的百分比。在進行生產(chǎn)系統(tǒng)優(yōu)化過程中,需要使用的機器時間包括下列幾種:最大操作時間:指的是設(shè)備可用的最大時間,若設(shè)備本身為廠內(nèi)自購,而非租借,且可完全由廠內(nèi)自主使用,則最大操作時間一般為日歷時間。負(fù)荷時間:為機器設(shè)備可稼動的時間,是最大操作時間扣除停機損失,停機損失包括計劃上的休止時間,如休假、教育訓(xùn)練、保養(yǎng)等。稼動時間:是負(fù)荷時間減去停機時間,而停機時間包括批次轉(zhuǎn)換、設(shè)備異常停止、修理、待料等時間。機器稼動率=稼動時間/負(fù)荷時間。故障間隔時間:機器每運轉(zhuǎn)多長時間就會出現(xiàn)一次故障,并需要維修。故障維修時間:機器出現(xiàn)故障,修復(fù)所需的時間。因此,本系統(tǒng)的設(shè)備平均稼動率計算公式如式(5-4)。(5-4)式中:m——系統(tǒng)中工作單元的數(shù)量;ORj——系統(tǒng)中第j個工作單元中機器設(shè)備的稼動率;在仿真模型中,該統(tǒng)計任務(wù)通過函數(shù)來實現(xiàn),程序設(shè)計參看附錄B中的UF.OR1函數(shù)體。1.4生產(chǎn)線平衡在進行系統(tǒng)仿真之前,需要將每個工作單元中機器設(shè)備的設(shè)計稼動率加以平衡,這樣仿真過程不會因為設(shè)備能力不平衡,導(dǎo)致某些工序過快成為瓶頸工序,使前后工序的機器設(shè)備因為等待而導(dǎo)致利用不足。為了防止這一問題,將根據(jù)該系統(tǒng)的設(shè)計能力2500臺/年,每年250個工作日來平衡生產(chǎn)線。由于機器對每一部件的加工時間均值確定,只能通過設(shè)計每個加工單元中機器的數(shù)量來對生產(chǎn)線進行設(shè)計,使得生產(chǎn)線能夠很好的滿足設(shè)計的生產(chǎn)能力。對每個工作單元機器數(shù)量的計算過程涉及到如下的變量符號,首先對它們加以說明。TWT——TotalWorkTime:每個工作單元中機器一年中的負(fù)荷時間;QU——QuantityUnit:每個工作單元所擁有的機器數(shù)量;TQW——TotalQuantityofWork:每個工作單元所完成的產(chǎn)品套數(shù);TC——TimeCycle:每個單元完成一套產(chǎn)品的生產(chǎn)平均周期時間,例如:WS3設(shè)備完成的一套產(chǎn)品為分別加工一個外圈、一個內(nèi)圈,則平均周期時間為完成一個外圈的平均周期時間(30’)+完成一個內(nèi)圈的平均周期時間(30’),共60分鐘;TNB——TotalNumofBreakdown:全年機器發(fā)生故障的次數(shù),每月1次,均值為12次;RT——RepairTime:單次機器維修所需時間,均值為半天,4小時,240分鐘;BR——BreakdownRate:故障率,均值為240*12/240/480=2.5%;BI——BreakdownInterval:機器故障發(fā)生時間間隔;OR——OperatingRate:機器稼動率,假設(shè)為80%。通過該產(chǎn)品的BOP,得出該系統(tǒng)生產(chǎn)單件最終產(chǎn)品,在各個生產(chǎn)單元上需要的平均周期時間TC如表5.2所示。表5.2生產(chǎn)系統(tǒng)中生產(chǎn)單元TC表單元WS1WS2WS3WS4WS5WS6WS10WS7WS8WS9WS11WS12時間5090601204050130838203045通過系統(tǒng)的設(shè)計生產(chǎn)能力和機器的生產(chǎn)周期,同時考慮故障比率較低,在計算機器臺數(shù)時將其忽略不記,設(shè)計計算公式如(5-5)所示。(5-5)式(5-5)中涉及四項變量,其中由于設(shè)備的故障、維修等所占時間比例忽略不記,所以機器全年負(fù)荷時間為TWT=250天*480分鐘/天=120000分鐘;假設(shè)稼動率產(chǎn)品套數(shù)就是生產(chǎn)線的年設(shè)計能力,即TQW=2500;從表5.2可以得出這12個工作單元的單套產(chǎn)品生產(chǎn)平均周期時間TCi。所以根據(jù)式(5-5)可以得出每個工作站的機器數(shù)量計算公式,如式(5-6)。(5-6)表5.3加工單元設(shè)備臺數(shù)表加工單元WS1WS2WS3WS4WS5WS6WS10WS7WS8WS9WS11WS12設(shè)備數(shù)量232422411112根據(jù)設(shè)備故障比率,可以計算出設(shè)備故障平均時間間隔,計算公式如式(5-7):BI=TWT×(OR-BR)/TNB=120000×0.775/12=7750(5-7)即每臺設(shè)備加工時間累計達到7750分鐘,就會發(fā)生故障,需要進行平均時間為240分鐘的維修后,才可以繼續(xù)運轉(zhuǎn)。1.5看板數(shù)量的確定生產(chǎn)系統(tǒng)循環(huán)過程中看板的數(shù)量決定了生產(chǎn)、使用或轉(zhuǎn)讓的在制品數(shù)量,決定了系統(tǒng)運作效率的高低。建立看板控制系統(tǒng)需要確定所需要的看板卡的數(shù)量。對于本文的單看板生產(chǎn)系統(tǒng)需要確定生產(chǎn)看板的套數(shù),以它來控制加工單元的開始生產(chǎn)或停止生產(chǎn)。得到多數(shù)研究文獻和實際應(yīng)用接收的計算方式有如下兩種:文獻[9]的最優(yōu)看板計算公式(5-8)。(5-8)式中:k——看板卡套數(shù);D——一段時期所需產(chǎn)品的平均數(shù)量;L——補充訂貨的提前期;S——安全庫存;C——容器容量。文獻[10]的看板數(shù)量計算公式(5-9)。(5-9)式中:R——組件利用速度,如15件/分鐘;Tp——單件生產(chǎn)時間,如:1.5分鐘/件;Td——箱子的運輸和傳送時間,如:2.5分鐘;C——箱子的單位容量,如:45件;X——需求速率變化的百分比,如10%。使用式(5-8)來確定看板數(shù)量,由于該公式?jīng)]有應(yīng)對動態(tài)需求這一項的變量,有效運用該公式的重要一步就是確定安全庫存S的數(shù)值,而一旦動態(tài)需求的隨機特征有所變化,該公式不能相應(yīng)的進行反饋;式(5-9)考慮到動態(tài)需求,在公式中設(shè)定了需求速率變化X這一項,但是它沒有考慮到安全庫存,計算出來的數(shù)值通常偏小,引起生產(chǎn)系統(tǒng)較嚴(yán)重的缺貨現(xiàn)象。本文研究生產(chǎn)/庫存系統(tǒng)在需求和生產(chǎn)服務(wù)具有隨機波動性時,隨機變量的變異系數(shù)對系統(tǒng)績效的影響,所以根據(jù)式(5-8)和式(5-9)進行修正,在式(5-9)添加安全系數(shù)α項,以保持看板數(shù)量能夠?qū)﹄S機變量做出反應(yīng);同時,考慮批處理作業(yè),添加批處理數(shù)據(jù)項B,保持系統(tǒng)的有效運行。對于生產(chǎn)看板數(shù)量的修正公式如(5-10)式。(5-10)式中:k——生產(chǎn)看板數(shù)量;[]——取大于表達式數(shù)值的最小整數(shù);R——組件利用速度;B——下道工序?qū)υ摬考呐幚頂?shù)量;Tp——單件生產(chǎn)時間;Td——箱子的運輸和傳送時間;C——箱子的單位容量;X——需求速率變化的百分比;α——安全系數(shù)。同一產(chǎn)品生產(chǎn)線的利用速率R為每天設(shè)計產(chǎn)出量除以每天的時間。在仿真實例中,產(chǎn)出量為每天10套,即R=10/480min=1/48(套/分鐘);B和Tp各個部件各不相同,見流程數(shù)據(jù)表附錄A;由于不考慮工序間運輸時間對系統(tǒng)績效的影響,取Td為0,C為1;X就是需求隨機分布函數(shù)的變異系數(shù)CV,如果是需求確定性實驗,則X=0,如果為需求隨機性實驗,則X有需求的變異系數(shù)確定;安全系數(shù)α通過仿真優(yōu)化,暫取為1.7。根據(jù)看板數(shù)量計算公式(5-9),對各個部件的各工序生產(chǎn)看板數(shù)量計算程序見附錄B的InitialActions和看板計算函數(shù)UF.KB部分。1.6仿真模型的WITNESS實現(xiàn)通過對該隨機生產(chǎn)/庫存系統(tǒng)流程的分析和系統(tǒng)配置參數(shù)的設(shè)定,設(shè)計出系統(tǒng)的Witness仿真模型,其可視化界面如圖5.4所示。圖5.4振動輪生產(chǎn)/庫存系統(tǒng)Witness仿真界面其中仿真模型中變量數(shù)據(jù)的初始化設(shè)置設(shè)計于Witness仿真模型的Initialize程序中,函數(shù)的邏輯結(jié)構(gòu)、加工單元、原材料、半成品以及庫存等實體元素的輸入輸出關(guān)系等都設(shè)計在這些元素對應(yīng)的action或rule編輯框內(nèi),具體程序參考附錄部分。1.7模型參數(shù)優(yōu)化在計算機模型驗證部分,為了證明計算機模型同理論模型是相符的,只考慮了計算機模型在確定型和隨機型兩種情況下的設(shè)備稼動率和故障率,以及產(chǎn)品產(chǎn)出數(shù)量,沒有考慮系統(tǒng)的另外兩個績效指標(biāo):庫存水平和定單平均等待時間。這兩項指標(biāo)與看板數(shù)量和維修人員數(shù)量之間具有很強的相關(guān)性。因此為了研究各種可變因子變化對系統(tǒng)績效的影響,需要建立一個統(tǒng)一的、優(yōu)化的模型參數(shù)環(huán)境,需要對模型的相關(guān)參數(shù)進行優(yōu)化取值,涉及的參數(shù)有看板安全系數(shù)α和維修工的數(shù)量,對其進行優(yōu)化選擇的準(zhǔn)則是:在制品庫存盡可能低、定單平均等待時間盡可能低、維修工數(shù)量盡可能少。將參數(shù)α和維修工的數(shù)量Qmen的可能取值設(shè)置如表5.8所示,從表上可以看出α有13種可選取值,Qmen有6個可能取值,累積有78種組合,現(xiàn)在尋求仿真模型在這78種方案的哪一種方案配置下,系統(tǒng)績效最優(yōu)。表5.8優(yōu)化參數(shù)的可能取值表變量名稱可能取值累積α[1.2,2.4]step=0.113Qmen[1,6]step=178通過Witness仿真優(yōu)化工具包optimize進行優(yōu)化仿真運行,將實驗結(jié)果導(dǎo)入到Excel中,按照定單平均等待時間AWT為第一排序字段、在制品庫存WIP為第二排序字段,遞增排列。將排列結(jié)果的前9個相對最優(yōu)配置方案及實驗結(jié)果列入表5.9。表5.9模型仿真參數(shù)優(yōu)化結(jié)果數(shù)據(jù)表WIPQmenαAWTORTPUT479441.7052.0122520479441.8052.0122520503161.7052.0542520503161.8052.0542520514051.7052.0532520514051.8052.0532520523031.9052.0612520523032052.0612520523032.1052.0612520從表5.9可以看出,在確定性情況下,α取1.7和1.8兩個數(shù)值得出的系統(tǒng)績效相同;再比較WIP數(shù)值,最低值為4794;維修工數(shù)量直到第7條配置時,才為3人,少于第一條配置。因此,選定第一條配置為系統(tǒng)的最優(yōu)配置方案。在下一章進行的仿真實驗研究中,如果沒有特別的說明,模型中的α和Qmen將確定為這兩個數(shù)值(1.7和4)。附錄BWitness仿真程序MODELINFORMATION: ModelName: productionandinventorysystemsimulation ModelTitle: optimizesystemparameters ModelAuthor: jiannywang CreationDate: ThuMar3111:29:172005ModelNotes: IndustrialEngineeringDepartment Business University InitialActions: !pm_var.mypns=100 !pm_var.cv=0 Uvar.kbsafe=1.7 Uvar.PK_wl_qg=UF.KB(25) Uvar.PK_wl_dpk=UF.KB(50) Uvar.PK_wl_jy=UF.KB(30) Uvar.PK_wl_hj1=UF.KB(60) Uvar.PK_wl_zy=UF.KB(25) Uvar.PK_nl_qg=UF.KB(20) Uvar.PK_nl_dpk=UF.KB(40) Uvar.PK_nl_jy=UF.KB(25) Uvar.PK_nl_hj1=UF.KB(50) Uvar.PK_nl_zy=UF.KB(20) Uvar.PK_nl_cdm=UF.KB(50) Uvar.PK_nl_zk=UF.KB(30) Uvar.PK_jqj_qg=UF.KB(12*4) Uvar.PK_jqj_tp=UF.KB(14*4) Uvar.PK_jqj_yq=UF.KB(60*4) Uvar.PK_ngb_qg=UF.KB(15*2) Uvar.PK_ngb_tp=UF.KB(25*2) Uvar.PK_ngb_yq=UF.KB(60*2) Uvar.PK_ngb_zk=UF.KB(50*2) Uvar.PK_fkb_qg=UF.KB(18*2) Uvar.PK_fkb_tp=UF.KB(25*2) Uvar.PK_fkb_yq=UF.KB(60*2) Uvar.PK_fkb_zk=UF.KB(50*2) Uvar.PK_hj2=UF.KB(30) Uvar.PK_hj3=UF.KB(45) Uvar.breakinterval=7750 Uvar.repairtime=240_____________________________________________________________ELEMENTNAME:DMD.b_orderElementType: BufferQuantity: 1Capacity: 1000InputOption: RearOutputOption: First SearchFrom: FrontActions Input: Uvar.totaldemand=Uvar.totaldemand+DMD.batchsize Output: Uvar.outpart=Uvar.outpart+DMD.batchsize_____________________________________________________________ELEMENTNAME:DMD.demandElementType: PartType: VariableattributesGroupnumber: 1InterArrivalTime: UF.DIT()+1FirstArrivalat: 310.0MaximumArrivals: UnlimitedInput/OutputRules Output: PUSHtoDMD.b_orderActions Create: DMD.arrivaltime=TIME DMD.batchsize=UF.DBS()+1 DMD.leadtime=UF.DLT()+1_____________________________________________________________ELEMENTNAME:DMD.demand_meetElementType: MachineQuantity: 1Priority: LowestInput/OutputRules Input: SEQUENCE/WaitDMD.b_order#(1), WS12.store#(DMD.batchsize) Output: PUSHtoSHIPActions Finish: IFDMD.arrivaltime+DMD.leadtime+20<TIME Uvar.Nunsatisfy=Uvar.Nunsatisfy+1 Uvar.waittime=Uvar.waittime+TIME-DMD.arrivaltime-DMD.leadtime-20 ENDIF_____________________________________________________________ELEMENTNAME:pm_part.fengkoubanElementType: PartType: VariableattributesGroupnumber: 1MaximumArrivals: 0Actions Create: Uatt.tpnum=4 Uatt.qgnum=8 ICON=106 Uatt.skqgtime=25 Uatt.tptime=18 Uatt.zktime=25_____________________________________________________________ELEMENTNAME:pm_part.neigebanElementType: PartType: VariableattributesGroupnumber: 1MaximumArrivals: 0Actions Create: Uatt.tpnum=4 Uatt.qgnum=8 ICON=107 Uatt.skqgtime=25 Uatt.tptime=15 Uatt.zktime=25_____________________________________________________________ELEMENTNAME:pm_part.neilunbanElementType: PartType: VariableattributesGroupnumber: 1MaximumArrivals: 0Actions Create: Uatt.jbqgnum=3 Uatt.jbqgtime=60 Uatt.dpktime=40 Uatt.jytime=25 Uatt.hj1time=50_____________________________________________________________ELEMENTNAME:pm_part.neiquanElementType: PartType: VariableattributesGroupnumber: 1MaximumArrivals: 0Actions Create: Uatt.zytime=20 Uatt.cdmtime=50 Uatt.zktime=30_____________________________________________________________ELEMENTNAME:pm_part.strengthbanElementType: PartType: VariableattributesGroupnumber: 1MaximumArrivals: 0Actions Create: Uatt.tpnum=8 Uatt.qgnum=16 ICON=105 Uatt.skqgtime=12 Uatt.tptime=14_____________________________________________________________ELEMENTNAME:pm_part.wailunElementType: PartType: VariableattributesGroupnumber: 1MaximumArrivals: 0Actions Create: Uatt.zytime=25_____________________________________________________________ELEMENTNAME:pm_part.wailunbanElementType: PartType: VariableattributesGroupnumber: 1MaximumArrivals: 0Actions Create: Uatt.jbqgnum=2 Uatt.jbqgtime=50 Uatt.dpktime=50 Uatt.jytime=30 Uatt.hj1time=60_____________________________________________________________ELEMENTNAME:repairmenElementType: LaborQuantityalwaysavailable: 4____________________________________________________________ELEMENTNAME:UF.AWTNotes: THEAVERAGEWAITINGTIMEOFORDER ElementType: FunctionType: RealParameters: 0Actions Execution: RETURNUvar.waittime/UF.numD()_____________________________________________________________ELEMENTNAME:UF.btNotes: breaktimedistributionfuntion ElementType: FunctionType: RealParameters: 2 mean,Real ppns,IntegerActions Execution: Uvar.funpt=GAMMA(1/Uvar.cv**2,mean*Uvar.cv**2,Uvar.mypns+ppns) RETURNUvar.funpt!mean_____________________________________________________________ELEMENTNAME:UF.DBSNotes: DEMANDBATCHSIZE ElementType: FunctionType: IntegerParameters: 0Actions Execution: RETURNGAMMA(1/Uvar.cv**2,29*Uvar.cv**2,Uvar.mypns+14)_____________________________________________________________ELEMENTNAME:UF.DITNotes: DEMANDINTERARRIVALTIME ElementType: FunctionType: RealParameters: 0Actions Execution: RETURNGAMMA(1/Uvar.cv**2,1439*Uvar.cv**2,Uvar.mypns+13)!1439_____________________________________________________________ELEMENTNAME:UF.DLTNotes: DEMANDLEADTIME ElementType: FunctionType: IntegerParameters: 0Actions Execution: RETURNGAMMA(1/Uvar.cv**2,1439*Uvar.cv**2,Uvar.mypns+15)!1439_____________________________________________________________ELEMENTNAME:UF.KBElementType: FunctionType: IntegerParameters: 1 meantime,RealActions Execution: Uvar.fun_kbsum=1/48*meantime*(1+Uvar.cv+Uvar.kbsafe)+1 RETURNUvar.fun_kbsum !x=thecoeffectionvariation !a=thesafeindexofkanban !p=theprocesstimemultibatchsize_____________________________________________________________ELEMENTNAME:UF.numDElementType: FunctionType: IntegerParameters: 0Actions Execution: RETURNTOTALIN(DMD.b_order)_____________________________________________________________ELEMENTNAME:UF.OR1ElementType: FunctionType: RealParameters: 0Actions Execution: RETURN(SUTIL(WS9.mach,2)+SUTIL(WS1.mach,2)+SUTIL(WS8.mach,2)+SUTIL(WS5.mach,2)+SUTIL(WS6.mach,2)+SUTIL(WS10.mach,2)+SUTIL(WS7.mach,2)+SUTIL(WS12.mach,2)+SUTIL(WS4.mach,2)+SUTIL(WS11.mach,2)+SUTIL(WS3.mach,2)+SUTIL(WS2.mach,2))/12_____________________________________________________________ELEMENTNAME:UF.ptNotes: processtimedistributionfuntion ElementType: FunctionType: RealParameters: 2 mean,Real ppns,IntegerActions Execution: Uvar.funpt=GAMMA(1/Uvar.cv**2,mean*Uvar.cv**2,Uvar.mypns+ppns) RETURNUvar.funpt!mean_____________________________________________________________ELEMENTNAME:UF.rtNotes: repairtimedistributionfuntion ElementType: FunctionType: RealParameters: 2 mean,Real ppns,IntegerActions Execution: Uvar.funpt=GAMMA(1/Uvar.cv**2,mean*Uvar.cv**2,Uvar.mypns+ppns) RETURNUvar.funpt!mean_____________________________________________________________ELEMENTNAME:UF.TPUTElementType: FunctionType: IntegerParameters: 0Actions Execution: RETURNUvar.outpart_____________________________________________________________ELEMENTNAME:UF.WIPElementType: FunctionType: RealParameters: 0Actions Execution: !addallfinishproductWIPvalue Uvar.valwip(1)=NPARTS(WS1.store)*30+NPARTS(WS2.store(1))*35+NPARTS(WS2.store(2))*34+NPARTS(WS3.store(1))*38+NPARTS(WS3.store(2))*37+NPARTS(WS4.store(1))*44+NPARTS(WS4.store(2))*42+NPARTS(WS5.store(1))*47+NPARTS(WS5.store(2))*44+NPARTS(WS6.store)*49+NPARTS(WS11.store)*83+NPARTS(WS12.store)*151 Uvar.valwip(1)=Uvar.valwip(1)+NPARTS(WS7.store(1))*1+NPARTS(WS7.store(2))*2+NPARTS(WS7.store(3))*2+NPARTS(WS8.store(1))*2+NPARTS(WS8.store(2))*4+NPARTS(WS8.store(3))*4+NPARTS(WS9.store(1))*3+NPARTS(WS9.store(2))*5+NPARTS(WS9.store(3))*5+NPARTS(WS10.store(1))*52+NPARTS(WS10.store(2))*8+NPARTS(WS10.store(3))*8+NPARTS(DMD.demand_meet)*151 !addallmaterialinmachinevalue Uvar.valwip(3)=NPARTS2(WS1.mach,pm_part.wailunban,0)*27+NPARTS2(WS1.mach,pm_part.neilunban,0)*28+NPARTS2(WS2.mach,pm_part.wailunban,0)*30+NPARTS2(WS1.mach,pm_part.neilunban,0)*30+NPARTS2(WS3.mach,pm_part.wailunban,0)*35+NPARTS2(WS3.mach,pm_part.neilunban,0)*34+NPARTS2(WS4.mach,pm_part.wailunban,0)*38+NPARTS2(WS4.mach,pm_part.neilunban,0)*37+NPARTS2(WS5.mach,pm_part.wailun,0)*44+NPARTS2(WS5.mach,pm_part.neiquan,0)*42+NPARTS2(WS6.mach,pm_part.neiquan,0)*44+NPARTS2(WS12.mach,pm_part.fengkouban,0)*8+NPARTS2(WS12.mach,pm_part.wailun,0)*47+NPARTS2(WS12.mach,pm_part.neilun,0)*83 Uvar.valwip(3)=Uvar.valwip(3)+NPARTS(WS7.mach)*6+NPARTS2(WS8.mach,pm_part.strengthban,0)+NPARTS2(WS8.mach,pm_part.fengkouban,0)*2+NPARTS2(WS8.mach,pm_part.neigeban,0)*2+NPARTS2(WS9.mach,pm_part.strengthban,0)*2+NPARTS2(WS9.mach,pm_part.fengkouban,0)*4+NPARTS2(WS9.mach,pm_part.neigeban,0)*4+NPARTS2(WS10.mach,pm_part.fengkouban,0)*5+NPARTS2(WS10.mach,pm_part.neigeban,0)*5+NPARTS2(WS10.mach,pm_part.neiquan,0)*49+NPARTS2(WS11.mach,pm_part.strengthban,0)*3+NPARTS2(WS11.mach,pm_part.neiquan,0)*52+NPARTS2(WS11.mach,pm_part.neigeban,0)*8 RETURNUvar.valwip(1)+Uvar.valwip(2)+Uvar.valwip(3)_____________________________________________________________ELEMENTNAME:WS1.machNotes: IFNPARTS(b_finish(1))+NPARTS2(mach,wailunban,0)<=NPARTS(b_finish(2))+NPARTS2(mach,neilunban,0)+1ANDNPARTS(b_raw(1))>=2 PULLfromb_raw(1) ELSEIFNPARTS(b_finish(1))+NPARTS2(mach,wailunban,0)>NPARTS(b_finish(2))+NPARTS2(mach,neilunban,0)ANDNPARTS(b_raw(2))>=3 PULLfromb_raw(2) ELSE Wait ENDIF ElementType: MachineQuantity: 2Priority: LowestType: BatchBatchMin: Uatt.jbqgnumBatchMax: Uatt.jbqgnumCycleTime: UF.pt(Uatt.jbqgtime,1)Input/OutputRules Input: IFN=1ANDNPARTS(WS1.store(1))<Uvar.PK_wl_qg PULLfrompm_part.wailunbanoutofWORLD ELSEIFN=2ANDNPARTS(WS1.store(2))<Uvar.PK_wl_qg PULLfrompm_part.neilunbanoutofWORLD ELSE Wait ENDIF Output: PUSHpm_part.wailunbantoWS1.store(1),pm_part.neilunbantoWS1.store(2)LaborRequirements Repair#1: repairmen#1Breakdown Description: BreakdownNumber1 Breakdowntype: BusyTime AtStartofCycle: Yes DownInterval: UF.bt(Uvar.breakinterval,21) RepairTime: UF.rt(Uvar.repairtime,41) ScrapPart: No Set-uponrepair: No_____________________________________________________________ELEMENTNAME:WS10.machElementType: MachineQuantity: 4Priority: LowestType: SingleCycleTime: UF.pt(Uatt.zktime,10)Input/OutputRules Input: IFNPARTS2(WS10.mach,pm_part.neiquan,0)+NPARTS(WS10.store(1))<Uvar.PK_nl_zkORNPARTS2(WS10.mach,pm_part.neigeban,0)+NPARTS(WS10.store(2))<Uvar.PK_ngb_zkORNPARTS2(WS10.mach,pm_part.fengkouban,0)+NPARTS(WS10.store(3))<Uvar.PK_fkb_qg IFNPARTS(WS6.store)>0AND2*(NPARTS2(WS10.mach,pm_part.neiquan,0)+NPARTS(WS10.store(1)))<=NPARTS2(WS10.mach,pm_part.neigeban,0)+NPARTS(WS10.store(2))AND2*(NPARTS2(WS10.mach,pm_part.neiquan,0)+NPARTS(WS10.store(1)))<=NPARTS2(WS10.mach,pm_part.fengkouban,0)+NPARTS(WS10.store(3)) PULLfromWS6.store ELSEIFNPARTS(WS9.store(2))>0ANDNPARTS(WS10.store(2))<=NPARTS(WS10.store(3)) PULLfromWS9.store(2) ELSEIFNPARTS2(WS10.mach,pm_part.fengkouban,0)+NPARTS(WS10.store(3))<Uvar.PK_fkb_qg PULLfromWS9.store(3) ENDIF ELSE Wait ENDIF Output: PUSHpm_part.neiquantoWS10.store(1),pm_part.neigebantoWS10.store(2), pm_part.fengkoubantoWS10.store(3)LaborRequirements Repair#1: repairmen#1Breakdown Description: BreakdownNumber1 Breakdowntype: BusyTime AtStartofCycle: Yes DownInterval: UF.bt(Uvar.breakinterval,30) RepairTime: UF.rt(Uvar.repairtime,50) ScrapPart: No Set-uponrepair: No_____________________________________________________________ELEMENTNAME:WS11.machElementType: MachineQuantity: 1Priority: LowestType: AssemblyAssemblyQty: 7CycleTime: UF.pt(30,11)Input/OutputRules Input: IFNPARTS(WS11.store)<Uvar.PK_hj2 SEQUENCE/WaitWS10.store(1)#(1), WS10.store(2)#(2), WS9.store(1)#(4) ELSE Wait ENDIF Output: PUSHtoWS11.storeLaborRequirements Repair#1: repairmen#1Breakdown Description: BreakdownNumber1 Breakdowntype: BusyTime AtStartofCycle: Yes DownInterval: UF.bt(Uvar.breakinterval,31) RepairTime: UF.rt(Uvar.repairtime,51) ScrapPart: No Set-uponrepair: NoActions Finish: CHANGEALLtopm_part.neilun_____________________________________________________________ELEMENTNAME:WS12.machElementType: MachineQuantity: 2Priority: LowestType: AssemblyAssemblyQty: 4CycleTime: UF.pt(45,12)Input/OutputRules Input: IFNPARTS(WS12.store)<Uvar.PK_hj3 SEQUENCE/WaitWS5.store(1)#(1), WS11.store#(1), WS10.store(3)#(2) ELSE Wait ENDIF Output: PUSHtoWS12.storeLaborRequirements Repair#1: repairmen#1Breakdown Description: BreakdownNumber1 Breakdowntype: BusyTime AtStartofCycle: Yes DownInterval: UF.bt(Uvar.breakinterval,32) RepairTime: UF.rt(Uvar.repairtime,52) ScrapPart: No Set-uponrepair: NoActions Finish: CHANGEALLtopm_part.lunzi_____________________________________________________________ELEMENTNAME:WS2.machElementType: MachineQuantity: 3Priority: LowestType: SingleCycleTime: UF.pt(Uatt.dpktime,2)Input/OutputRules Input: IFNPARTS2(WS2.mach,pm_part.wailunban,0)+NPARTS(WS2.store(1))<Uvar.PK_wl_dpkORNPARTS2(WS2.mach,pm_part.neilunban,0)+NPARTS(WS2.store(2))<Uvar.PK_nl_dpk IFNPARTS(WS1.store(1))>0ANDNPARTS2(WS2.mach,pm_part.wailunban,0)+NPARTS(WS2.store(1))<NPARTS2(WS2.mach,pm_part.neilunban,0)+NPARTS(WS2.store(2)) PULLfromWS1.store(1) ELSEIFNPARTS2(WS2.mach,pm_part.neilunban,0)+NPARTS(WS2.store(2))<Uvar.PK_nl_dpk PULLfromWS1.store(2) ENDIF ELSE Wait ENDIF Output: PUSHpm_part.wailunbantoWS2.store(1),pm_part.neilunbantoWS2.store(2)LaborRequirements Repair#1: repairmen#1Breakdown Description: BreakdownNumber1 Breakdowntype: BusyTime AtStartofCycle: Yes DownInterval: UF.bt(Uvar.breakinterval,22) RepairTime: UF.rt(Uvar.repairtime,42) ScrapPart: No Set-uponrepair: No_____________________________________________________________ELEMENTNAME:WS3.machElementType: MachineQuantity: 2Priority: LowestType: SingleCycleTime: UF.pt(Uatt.jytime,3)Input/OutputRules Input: IFNPARTS2(WS3.mach,pm_part.wailunban,0)+NPARTS(WS3.store(1))<Uvar.PK_wl_jyORNPARTS2(WS3.mach,pm_part.neilunban,0)+NPARTS(WS3.store(2))<Uvar.PK_nl_jy IFNPARTS(WS2.store(1))>0ANDNPARTS2(WS3.mach,pm_part.wailunban,0)+NPARTS(WS3.store(1))<NPARTS2(WS3.mach,pm_part.neilunban,0)+NPARTS(WS3.store(2)) PULLfromWS2.store(1) ELSEIFNPARTS2(WS3.mach,pm_part.neilunban,0)+NPARTS(WS3.store(2))<Uvar.PK_nl_jy PULLfromWS2.store(2) ENDIF ELSE Wait ENDIF Output: PUSHpm_part.wailunbantoWS3.store(1),pm_part.neilunbantoWS3.store(2)LaborRequirements Repair#1: repairmen#1Breakdown Description: BreakdownNumber1 Breakdowntype: BusyTime AtStartofCycle: Yes DownInterval: UF.bt(Uvar.breakinterval,23) RepairTime: UF.rt(Uvar.repairtime,43) ScrapPart: No Set-uponrepair: No_____________________________________________________________ELEMENTNAME:WS4.machElementType: MachineQuantity: 4Priority: LowestType: SingleCycleTime: UF.pt(Uatt.hj1time,4)Input/OutputRules Input: IFNPARTS2(WS4.mach,pm_part.wailunban,0)+NPARTS(WS4.store(1))<Uvar.PK_wl_hj1ORNPARTS2(WS4.mach,pm_part.neilunban,0)+NPARTS(WS4.store(2))<Uvar.PK_nl_hj1 IFNPARTS(WS3.store(1))>0ANDNPARTS2(WS4.mach,pm_part.wailunban,0)+NPARTS(WS4.store(1))<NPARTS2(WS4.mach,pm_part.neilunban,0)+NPARTS(WS4.store(2)) PULLfromWS3.store(1) ELSEIFNPARTS2(WS4.mach,pm_part.neilunban,0)+NPARTS(WS4.store(2))<Uvar.PK_nl_hj1 PULLfromWS3.store(2) ENDIF ELSE Wait ENDIF Output: PUSHpm_part.wailuntoWS4.store(1),pm_part.neiquantoWS4.store(2)LaborRequirements Repair#1: repairmen#1Breakdown Description: BreakdownNumber1 Breakdowntype: BusyTime AtStartofCycle: Yes DownInterval: UF.bt(Uvar.breakinterval,24) RepairTime: UF.rt(Uvar.repairtime,44) ScrapPart: No Set-uponrepair: NoActions Finish: CHANGEpm_part.wailunbantopm_part.wailun CHANGEpm_part.neilunbantopm_part.neiquan_____________________________________________________________ELEMENTNAME:WS5.machElementType: MachineQuantity: 2Priority: LowestType: SingleCycleTime: UF.pt(Uatt.zytime,5)Input/OutputRules Input: IFNPARTS2(WS5.mach,pm_part.wailunban,0)+NPARTS(WS5.store(1))<Uvar.PK_wl_zyORNPARTS2(WS5.mach,pm_part.neilunban,0)+NPARTS(WS5.store(2))<Uvar.PK_nl_zy IFNPARTS(WS4.store(1))>0ANDNPARTS2(WS5.mach,pm_part.wailunban,0)+NPARTS(WS5.store(1))<NPARTS2(WS5.mach,pm_part.neilunban,0)+NPARTS(WS5.store(2)) PULLfromWS4.store(1) ELSEIFNPARTS2(WS5.mach,pm_part.neilunban,0)+NPARTS(WS5.store(2))<Uvar.PK_nl_zy PULLfromWS4.store(2) ENDIF ELSE Wait ENDIF Output: PUSHpm_part.wailuntoWS5.store(1),pm_part.neiquantoWS5.store(2)LaborRequirements Repair#1: repairmen#1Breakdown Description: BreakdownNumber1 Breakdowntype: BusyTime AtStartofCycle: Yes DownInterval: UF.bt(Uvar.breakinterval,25) RepairTime: UF.rt(Uvar.repairtime,45) ScrapPart: No Set-uponrepair: No_____________________________________________________________ELEMENTNAME:WS6.machElementType: MachineQuantity: 2Priority: LowestType: SingleCycleTime: UF.pt(50,6)Input/OutputRules Input: IFNPARTS2(WS6.mach,pm_part.neilunban,0)+NPARTS(WS6.store)<Uvar.PK_nl_cdm PULLfromWS5.store(2) ELSE Wait ENDIF Output: PUSHtoWS6.storeLaborRequirements Repair#1: repairmen#1Breakdown Description: BreakdownNumber1 Breakdowntype: BusyTime AtStartofCycle: Yes DownInterval: UF.bt(Uvar.breakinterval,26) RepairTime: UF.rt(Uvar.repairtime,46) ScrapPart: No Set-uponrepair: No_____________________________________________________________ELEMENTNAME:WS7.machElementType: MachineQuantity: 1Priority: LowestType: GeneralInputQuantity: 2OutputQuantity: Uatt.qgnumInheritAttributes: NoCycleTime: UF.pt(Uatt.skqgtime,7)Input/OutputRules Input: IFNPARTS(WS7.store(1))<Uvar.PK_jqj_qgORNPARTS(WS7.store(2))<Uvar.PK_ngb_qgORNPARTS(WS7.store(3))<Uvar.PK_fkb_qg IFNPARTS(WS7.store(1))<=2*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026上半年安徽事業(yè)單位聯(lián)考滁州市瑯琊區(qū)招聘10人考試備考試題及答案解析
- 2025年任城人事考試及答案
- 2026年礦物材料的試驗與特性分析
- 2025年靈山人事考試及答案
- 2026年風(fēng)險評估與建筑工程安全事故的關(guān)聯(lián)
- 2025年護士事業(yè)編面試考試題及答案
- 2025年玉溪事業(yè)單位筆試及答案
- 2025年通化市最近的事業(yè)編考試及答案
- 2026浙江大學(xué)環(huán)境與資源學(xué)院誠聘海內(nèi)外英才筆試模擬試題及答案解析
- 2025年山東教師編體育學(xué)科筆試及答案
- DB4114T 105-2019 黃河故道地區(qū)蘋果化學(xué)疏花疏果技術(shù)規(guī)程
- 如何高效向GPT提問
- GB/T 44179-2024交流電壓高于1 000 V和直流電壓高于1 500 V的變電站用空心支柱復(fù)合絕緣子定義、試驗方法和接收準(zhǔn)則
- 德漢翻譯入門智慧樹知到期末考試答案章節(jié)答案2024年中國海洋大學(xué)
- JT-T-969-2015路面裂縫貼縫膠
- MT-T 1199-2023 煤礦用防爆柴油機無軌膠輪運輸車輛安全技術(shù)條件
- ?;愤\輸安全培訓(xùn)-危險品運輸車輛的安全檢查與維護
- 浙江省城市軌道交通工程預(yù)算定額(2018版)
- 新教材高中語文第二單元7風(fēng)景談秦腔課件部編版選擇性必修下冊
- 無抗養(yǎng)殖模式可行性分析
- PIPESIM軟件教程(軟件介紹及模型建立)
評論
0/150
提交評論