我是一個MES的研發人員,下面內容爲一面之詞,如有不合適或不許確的地方敬請見諒。算法
目錄:ide
一. 原始需求spa
2、需求分析orm
3、研究價值blog
4、研究內容事件
6、結束語get
在機加工生產過程當中,某工序設備A因須要維修而停工,而在該設備維修期間,可能會致使其下游工序受其影響由於沒有物料(半成品)供生產而停工——咱們稱之爲待料停工,或者致使其上游工序由於物料沒法繼續向下遊輸送而停工——咱們稱之爲堵料停工。MES系統須要利用這段時間對受到影響而待工的設備安排檢修和保養做業。it
名詞:待料時間
a.目標工序因前置某工序停工而沒有物料供生產致使的停工時間長度,從無料可用的時刻開始,至物料送至可供生產的時刻爲止。
例如:工序1停工15分鐘,致使工序二、工序三、工序4受其影響而停工等待物料,當工序1回覆生產後,後續工序也會逐步回覆生產。
b.目標工序的生產節拍快於前置工序節拍而致使的停工等待,此狀況通常不會出現,本文提出是爲了保證分析過程的完整性,而將極端狀況包含在內。
例如:工序1節拍5分鐘,工序2節拍3分鐘,這樣在製品會出現供應不足而致使工序2待料。
名詞:堵料時間
與待料停工相對的概念,當後續工序停工,且工序間在製品數量已達到上限而致使的停工狀況。
名詞:工序
工序是指整個生產過程當中各工段加工產品的次序,亦指各工段的加工。
即:將原材料加工爲產成品的步驟,機加工的工序通常都配有專用設備。
名詞:在製品
在工序間流轉的物料,在第一道工序時候是原材料,通過最後一道工序下線後即爲產成品。
名詞:在製品數上限
只在兩個工序之間能夠存放的在製品數量的上限。
名詞:在製品數下限
只在兩個工序之間能夠存放的在製品數量的下限。
此類需求是對MES系統提出的高層次需求,也是智能製造環境下企業對MES系統提出的重要需求之一,即當生產過程因種種緣由停工不能繼續生產是,MES系統如何對方方面面作出應對處理的。在不一樣類型的企業環境內,致使停工的緣由多種多樣,停工影響的範圍也各不相同,如何作到快速發現和處理問題恢復生產和有效利用停工時間安排其餘可用的做業,最大化的利用這段停工時間創造價值,將成爲MES智能化重要的挑戰。後文將圍繞有效利用停工時間的方面展開討論。
隨着智能製造在企業內的逐步深刻,智能化的分析和調度成爲企業對MES系統的重要需求之一,對於故障停工的處理過程,一方面作系統化的分析研究停工緣由,減小或消除其出現的概率;另外一方面在問題消除以前仍然會不期而遇,那麼如何在這個的狀況下充分利用停工時間安排其餘工做,進而最大化這段時間所能產生的價值就是現階段MES爲企業服務的重要目標之一。
1.背景設定
設定某機加工企業A,有1條生產線,每條生產線有10道工序,每道工序由1臺專屬設備工做,工序間節拍各不相同,平均節拍爲5分鐘,工序間由傳送帶鏈接做爲在製品的放置空間(分析過程當中將忽略物料傳送所用的時間),在製品數量有最大容量數,和最小容量數的設定。
下面將抽取一段連續生產的3個工序做爲案例分析的基礎,設定的共用信息以下:
工序名稱和順序:A、B、C
工序A:停工30分鐘
工序B和工序C:節拍信息、在製品數量信息——在案例內設定。
求工序C的待料時間。
2.解題思路
第一步:計算停工期間,致使的待料時間
當工序A停工的時候,根據停工時間長度和後續工序節拍結合在製品狀況,能夠推算出後續工序受影響而停工的時間長度,這段時間簡稱爲停工期待料時間,預期會出現如下幾種狀況:
1)工序B,工序C均不受影響,這種狀況不做處理。
2)工序B有停工,工序C未收到波及
工序A | 工序B | 工序C | ||||
停工21分鐘 |
在制數 | 節拍 | 停工 | 在制數 | 節拍 | 停工 |
4 | 5分鐘 | 1分鐘 | 3 | 4分鐘 | 0分鐘 |
3)工序B停工,C工序停工
工序A | 工序B | 工序C | ||||
停工30分鐘 |
在制數 | 節拍 | 停工 | 在制數 | 節拍 | 停工 |
4 | 5分鐘 | 10分鐘 | 3 | 4分鐘 | 2分鐘 |
整理:
在工序A停工以後,工序B在完成其在製品(A-B間在製品)的生產以後就會中止生產。
即在停工階段:
工序B待料時間 = 工序B在製品數 × 工序B節拍
由於須要考慮到與工序B節拍的差別,致使工序C的待料時間的得會出更加複雜,在後文中繼續分析。
第二步:計算恢復生產後,仍需等待物料到達的時間
當工序A恢復生產以後,仍須要計算物料到達目標工序的時間,這段時間簡稱爲復工期待料時間,此時須要加入對工序間在製品參數的考慮,可能有一下幾種狀況:
1)企業要求在製品達到工序在製品數量下線,後續工序在才能夠開始生產。這裏有種特殊狀況是將工序在製品數量下線值設定爲1,則到達目標工序的時間就是從工序A到目標工序前序工序的節拍的和。
例以下表:
工序A | 工序B | 工序C | ||||
節拍 | 在制下線 | 節拍 | 停工 | 在制下線 | 節拍 | 停工 |
6分鐘 | 1 | 5分鐘 | 6分鐘 | 1 | 4分鐘 | 11分鐘 |
2 | 5分鐘 | 12分鐘 | 2 | 4分鐘 | 22分鐘 |
即在復工階段:
工序B的待料時間 = 工序A節拍 × 工序B在製品下線數量
工序C的待料時間 = 工序B的待料時間 + 工序B節拍 × 工序B在製品下線數量
2)企業要求在製品達到工序在製品數量上限,或其餘約定值,後續工序在才能夠開始生產。這種狀況根據實際須要進行設定便可。
第三步,求出最終的待料時間
經過將停工待料時間進行分析後,分爲了停工期待料時間和復工期待料時間,將其相加後便可得到最終的總體待工時間。
即:
工序B待料時間 = 工序B停工期待料時間 + 復工期待料時間
至此剩餘的問題是,求解跨工序間的停工期待料時間運算問題,即上文中當工序A停工的時候如何計算出工序C的待料時間,下面將經過兩個案例進行分析,然後給得出求解的算法。
3.案例分析一
繼續上文的問題進行分析:
工序A | 工序B | 工序C | ||||
停工30分鐘 |
在制數 | 節拍 | 停工 | 在制數 | 節拍 | 停工 |
4 | 5分鐘 | 10分鐘 | 3 | 4分鐘 | 2分鐘 |
第一步:演算停工期間各工序在製品的消耗過程
參見下圖表格:
第二步:分析其運算過程
工序A停工30分鐘後,工序C受其影響待料停工2分鐘,即工序C消耗在製品生產用掉28分鐘,可知這種狀況(簡稱:案例一公式):
工序C的待料時間 = 工序A停工時間 - 工序C節拍 ×(工序B在製品數量+工序C在製品數量)
即: 2分鐘 = 30分鐘 - 4分鐘 × (4 + 3)
由此得知,工序C待料時間與工序B的節拍沒有關係。
4.案例分析二
將案例一的內容作少許的調整,將工序B節拍調整爲6分鐘,工序C在制數調整爲2,從新演算一下。
工序A | 工序B | 工序C | ||||
停工30分鐘 |
在制數 | 節拍 | 停工 | 在制數 | 節拍 | 停工 |
4 | 6分鐘 | 6分鐘 | 2 | 4分鐘 | 2分鐘 |
第一步:演算停工期間各工序在製品的消耗過程
參見下圖表格:
第二步:分析其運算過程
當套用案例一得出的公式時候發現(案例一公式):
工序C的待料時間 = 工序A停工時間 - 工序C節拍 ×(工序B在製品數量+工序C在製品數量)
即: 30分鐘 - 4分鐘 × (4 + 2)= 6分鐘
也就是說案例一所得出的公式並不適用與案例二的狀況。
當工序A停工30分鐘後,工序C受其影響待料停工2分鐘,即工序C消耗在製品生產用掉28分鐘,可知這種狀況(簡稱:案例二公式):
工序C的待料時間 = 工序A停工時間 - (工序B節拍 × 工序B在製品數量+ 1 ×工序C節拍)
即: 30分鐘 - (6分鐘 × 4 + 1 × 4分鐘) = 2分鐘
由此得知,工序C待料時間與工序B的節拍有關係。
5.隱含的係數
通過上述兩個案例的分析,得出了2個公式,而咱們發現這兩個公式只適用於自身所在案例的運算,而兩個案例的最大區別是在演算過程當中工序C是否提早出現了待工狀態。
在案例一中,整個演算過程工序C只在最後進入了待料停工狀態,因此其待料時間的計算主要處理工序C自身的節拍和在製品生產爲運算基礎。
在案例二中,工序C出現了待料狀態,由於工序C的節拍快於工序B,那麼什麼時候進入停工待料狀態則主要依賴與工序B的結束時間,工序B結束以後,工序C還有1個在製品能夠生產。
那麼如何區分計算狀況適用於哪一個案例呢?有一個隱含的係數在裏面,當案例的先後工序節拍時間和後工序的在製品數量肯定後,便可推算出來,再和前工序的在製品數量進行比較,若前序在製品數量大於或等於係數,則適用案例一公式,不然適用案例二公式。
係數運算公式:(工序B爲前序,工序C爲後序)
係數 = (工序C在製品數量 - 1)× 工序C節拍 ÷(工序B節拍 - 工序C節拍)
下面敘述具體的問題求解步驟:
計算係數
用前序在製品數量與係數作比較,以肯定使用的公式。
係數<在製品數量,則套用案例一公式,得到停工期待料時間
工序C的待料時間 = 工序A停工時間 - 工序C節拍 ×(工序B在製品數量+工序C在製品數量)
不然套用案例二公式,得到停工期待料時間
工序C的待料時間 = 工序A停工時間 - (工序B節拍 × 工序B在製品數量+ 1 ×工序C節拍)
根據實際需求狀況計算復工期待料時間
參考文中案例公式:
工序B的待料時間 = 工序A節拍 × 工序B在製品下線數量
工序C的待料時間 = 工序B的待料時間 + 工序B節拍 × 工序B在製品下線數量
最後求出總體待料時間
工序B待料時間 = 工序B停工期待料時間 + 復工期待料時間
本文中的研究範圍比較狹窄,僅分析了單個工序停工狀況出現時,其後兩道工序的待料時間計算方法,以此類推能夠繼續得出後續工序的影響方位,但在實際應用中可能會遇到更多的困難:
工序數量更多,且關係複雜
停工事件會在多工序同時出現
待料時間的計算還須要考慮堵料時間
對於已經安排做業的工序,如何計算其待料時間
到時候須要進一步對算法進行補充和完善。
計算出相關工序有效的待料時間以後,須要進一步研究事件調度算法。