高級排程(Advanced Scheduling)是實時的、動態(tài)集成的、基于內(nèi)存計算,主要用于車間訂單工序的排程。是基于事件的有限約束排程,意味是實時的考慮目前的負荷和能力和材料供應(yīng)等多因素??梢灾С植煌膬?yōu)化方法,考慮基于規(guī)則的資源和工序選擇如最少換裝時間、最小閑散時間和盡可能的遲考慮排序的相關(guān)性等。
高級排程(Advanced Scheduling)一般分三步:預(yù)見性排程,可以給一組訂單預(yù)先準備優(yōu)化的排程。響應(yīng)性排程,可以在多變的環(huán)境中適應(yīng)變化以維護可行的排程。交互性排程,可以用甘特圖觸摸屏手工拖拉工序排程調(diào)度。
高級排程需要可以處理以下難度:
1、種類繁多,多品種、變批的復(fù)雜情況
2、標準工藝路線與具有特點的工藝路線混合
3、工序可能有加工時間、準備時間、等待排隊時間、移動搬運時間及固定偏置時間等
3、每道工序可選設(shè)備,設(shè)備可選模具、刀具、選工裝、選物料,選特類的人員
4、具有班次(三班)的考慮,可以加班,也可以加不整的班。
5、工序之間流轉(zhuǎn)一般采用平行移動模式。
6、加工任務(wù)可以被搶占,可以快速切換,有切換時間的約束
7、滿足交期的前提下,工藝、設(shè)備、工裝、人員、物料等不確定因素的優(yōu)化組合
8、加權(quán)多目標權(quán)衡優(yōu)化,但也受到?jīng)Q策者偏好的影響。
APS的排程方法很多,最常用的有正排和倒排兩種方法或是將兩者混合使用。
一、排產(chǎn)的邏輯
每一個要進行排產(chǎn)的最終訂單都具有一個承諾日期,該日期是通過訂單承諾CTP(capable to promise)確定的。排產(chǎn)算法的邏輯按照如下方式對每一個訂單進行操作:
(1) 自動識別關(guān)鍵路徑
(2)從承諾日期反向開始,并且保留每道工序需要的工作中心的能力和物料。如果所需要的物料是已經(jīng)生產(chǎn)的組件,則同樣從其需求點開始對其進行反向計劃。如果在此途徑結(jié)束時,開始日期在排產(chǎn)時間范圍的開始或之后,則繼續(xù)執(zhí)行下一個訂單。
(3)如果反向途徑失敗,則意味著生成的開始日期可能已經(jīng)過去,則從計劃開始日期保留能力和物料。如果生成的截止日期在計劃時間范圍內(nèi)(雖然有可能在承諾日期之后,)則完成對此訂單的計劃。如果反向和正向途徑都失敗,則不將該訂單包括在計劃期間內(nèi)。
二、規(guī)則算法的演繹
以“方桌”任務(wù)為例。方桌的工藝路線我們已經(jīng)給出。假定現(xiàn)在是6月13日,我們接到兩個訂單(C001和C002),各訂購方桌100套,交貨期分別為6月16和6月17日。為簡明起見,再假定所有涉及的采購物料都不短缺,且目前所有工作中心資源均未被占用,我們試著用APS的順排正排的方法為它們安排主生產(chǎn)排產(chǎn)。
(1)將所有任務(wù)按優(yōu)先級排序形成任務(wù)隊列
在處理所有的任務(wù)時必須遵循一定的順序,該順序取決于一定的規(guī)則。主要包括要求完成日期、先到先服務(wù)、加工時間、下達日期等,這些規(guī)則可以按需要單獨使用,也可以組合使用。為簡明起見,我們按訂單要求的交貨期確定優(yōu)先級,交貨期早的優(yōu)先級高。因此任務(wù)隊列的順序是C001 、C002。
(2)取第一個任務(wù)
計算該各工序占用對應(yīng)工作中心的工作時間的跨度。
(3)要求將各個工序放在時間坐標上進行考察,所以首先要計算出各工序占用對應(yīng)工作中心的時間跨度。
計算方法是:占用工作中心時間=加工數(shù)量/效率。如下表,我們可以計算出“方桌”任務(wù)各工序占用對應(yīng)工作中心的時間跨度。
(4)確定關(guān)鍵路徑
我們利用上表的數(shù)據(jù)可以作出任務(wù)C001的網(wǎng)絡(luò)圖。我們知道,任務(wù)的總時間跨度是由圖中的關(guān)鍵路徑,即最長路徑?jīng)Q定的,因此應(yīng)該先找出關(guān)鍵路徑,確定關(guān)鍵工序,在處理上優(yōu)先安排資源,才能使排產(chǎn)在整個任務(wù)的層次達到最優(yōu)。
關(guān)鍵路徑是: 開始- 4(加工面板)- 3(裝配桌面)- 1(總裝)- 完成
如果網(wǎng)絡(luò)圖的節(jié)點較多,求解關(guān)鍵路徑會比較麻煩,排產(chǎn)系統(tǒng)會自動完成這項工作。在制造窗口中會自動加了粗黑框的工序,就是系統(tǒng)自動求解的關(guān)鍵工序,它們所組成的路徑就是關(guān)鍵路徑。
有時候,在網(wǎng)絡(luò)圖上兩條或以上路徑所用時間完全相同的,就會出現(xiàn)兩條以上的關(guān)鍵路徑,對于這種情況,通??梢匀我膺x擇一條當作關(guān)鍵路徑,優(yōu)先分配資源,其余的視為非關(guān)鍵路徑。
當路徑之間不存在資源爭奪關(guān)系(即使用不同的工作中心),各資源的占用情況也相同時,選擇哪一條關(guān)鍵路徑進行優(yōu)先處理并不會影響排程的結(jié)果,而要是上述條件不滿足時,選擇不同的關(guān)鍵路徑優(yōu)先處理就有可能得到不同的排程結(jié)果。但這種差異并不明顯,可能是可以接受的。
(5)取第一個關(guān)鍵工序
工序4,即“加工面板”
(6)確定當前工序最早可開始時間
在正排法中工序的最早可開始時間就是當前時間,如果工序所需物料當前短缺,則應(yīng)加上該工序所需物料的提前期。如果是加工件就是生產(chǎn)加工提前期,如果是采購就是采購提前期。
由于工序4沒有要投入的加工件,而采購件當前不短缺,故最早可開始時間就是當前(6月13日9:00)。
(7)確定資源可用
通過確定當前工序最早可開始時間就可以計算其結(jié)束時間,那么該工序的排產(chǎn)就算完成了。但實際上還有一個重要的問題沒有解決:該工序?qū)?yīng)的工作中心資源在該時段的狀態(tài)可用嗎?還是已經(jīng)被別的任務(wù)占用?根據(jù)已知,工序4對應(yīng)的工作中心Shop3未被占用,即狀態(tài)為“空閑”。
(8)確定工序計劃開始時間和計劃結(jié)束時間
如果該工序?qū)?yīng)的工作中心資源在該時段的狀態(tài)可用,那么工序的計劃開始時間和計劃結(jié)束時間就分別等于最早開始時間和最早結(jié)束時間。如果工作中心資源在該時段已被占用,則我們將當前工序往后移至第一個未被占用的時段,重新確定計劃開始時間和計劃結(jié)束時間。
因此工序4的計劃開始時刻就是最早可開始時刻,即6月13日9:00。計劃結(jié)束時刻為計劃開始時刻往后推5個工作小時即6月13日14:00。
需要注意的是,我們這里使用的是“工作小時”,按照工作日歷,如果時間跨度超過了當天的工作時間,超過的部分就要從下一個工作日的工作開始時刻接著計算。
(9)設(shè)置對應(yīng)工作中心相應(yīng)時段的狀態(tài)為“占用”
設(shè)定了計劃開始時間和計劃結(jié)束時間后,要將相應(yīng)時段相應(yīng)工作中心資源的狀態(tài)設(shè)為“占用”,以免后面的任務(wù)在該時段被重復(fù)分配:在本例中,我們需要將Shop3從6月13日9:00到14:00的狀態(tài)設(shè)置為“占用”。
(10)轉(zhuǎn)向緊后關(guān)鍵工序
一個工序的緊前或緊后工序可能不止一個,但我們此處先考慮關(guān)鍵路徑上的緊后工序,按照我們在第4步中介紹的方法,這最多只會有一個。安排的方法和前面(3)~(6)是一樣的。該過程是一個循環(huán),直到當前任務(wù)中所有的關(guān)鍵工序都已被安排。完成對訂單C001的關(guān)鍵工序的排程圖。
(11)轉(zhuǎn)向非關(guān)鍵工序
在完成了關(guān)鍵工序的排程后,當前任務(wù)的總時間跨度就已經(jīng)被確定了,接著系統(tǒng)開始轉(zhuǎn)向當前任務(wù)的非關(guān)鍵工序。非關(guān)鍵工序的安排在時間上可以有一定的松動,即只要在其緊后工序開始之前結(jié)束,并且在其緊前工序結(jié)束之后才開始就可以了。因此對非關(guān)鍵工序的排程,我們至少可制定兩種規(guī)則:
一是緊前工序結(jié)束后立刻開始本工序;
二是本工序開始前緊前工序剛完成。排產(chǎn)系統(tǒng)有時可以讓用戶選擇遵循規(guī)則(1)或(2),如果選擇規(guī)則(2),則相當于關(guān)鍵工序正排,非關(guān)鍵工序倒排。
至此,我們完成了任務(wù)C001的排程。我們可以看到,Shop4對應(yīng)的兩個工序為非關(guān)鍵工序,在這里采用的是規(guī)則(2)。完成對任務(wù)C001的排程圖
該過程是一個循環(huán),直到當前任務(wù)所有的非關(guān)鍵工序都已被安排。
(12)轉(zhuǎn)向任務(wù)隊列中下一個任務(wù),完成了C001所有工序的排程后,排產(chǎn)系統(tǒng)轉(zhuǎn)向任務(wù)C002。
同樣,先安排關(guān)鍵工序,并且也是首先安排工序(4)。我們注意到,此時工序(4)的最早可開始時間同樣是6月13日9:00,但Shop3在該時段已被標記為占用,于是排產(chǎn)系統(tǒng)將當前工序的計劃開始時刻移動到下一個未被占用時段的開始時刻即6月13日14:00,以此為基準往后推5個工作小時得到計劃結(jié)束時刻即6月14日11:00。
完成對任務(wù)C001的安排后,系統(tǒng)開始對任務(wù)C002進行排程,同樣也是由關(guān)鍵工序開始, 如圖:
然后安排非關(guān)鍵工序,最后完成的兩個各式各100套“方桌”任務(wù)正排計劃如圖:
該過程是一個循環(huán),直到完成隊列中所有的任務(wù)都已被安排。
在當前的資源條件下,任務(wù)的累計提前期不能滿足交貨期的情況下,正排法會通過推遲部分或全部工序的加工來解決,例如圖中Shop1對應(yīng)的被標為紅色的兩個工序(即C001的工序(1)和C002的工序(1)的計劃就是被延期加工的情況。
雖然我們并不希望交貨被延遲,但這卻是現(xiàn)實約束下的一個可行的方案。
三、倒排法
倒排法與正排法方法相似但方向相反,從交貨期或指定的完成時刻開始,將各工序計劃逆時間順序向前排程。
如圖,假如我們將訂單C001的交貨期定為6月21日,那么系統(tǒng)將會從來6月20日工作時間的最后一刻即17:00開始向前排程。結(jié)果我們得到的計劃是最早開始的工序即工序(4)在6月15日16:00開始。
倒排的特點是在滿足完交貨期的情況下,加工盡可能遲開始,這符合JIT(just in time)的思想。倒排法的問題是當累計提前期不能滿足交貨期時,按照剛才的算法將會導(dǎo)致某些工序的開始時間被安排到了“從前”,即計劃開始時刻早于當前時刻,顯然這是不可行的。
四、融合應(yīng)用
從以上的介紹我們可以看到,正排法與倒排法各有利弊,在實際的應(yīng)用中,有的系統(tǒng)會根據(jù)情況自動采用其中哪種方法。例如,當某任務(wù)累計提前期不能滿足交貨期時,系統(tǒng)自動對該計劃各工序正排,以便得出一個可行的計劃。而相反當累計提前期可以滿足交貨期時,系統(tǒng)自動對該計劃各工序進行倒排,以符合JIT的原則。
此外,有的排產(chǎn)系統(tǒng)還允許對關(guān)鍵工序采用正排的方法,而對非關(guān)鍵工序采用倒排的方法,在保證排產(chǎn)計劃的可行性和符合JIT之間采取一種折中的方法。
圖就是一個例子,與前圖相比較,工序(4)、(3)、(1)并無變化,而計劃由Shop4完成的工序(2)、(5)則采用了倒排法。即關(guān)鍵工序采用正排法,非關(guān)鍵工序采用倒排法。
APS需要自動的替換設(shè)備來,滿足交期。需要自動的替換工藝路線,來滿足交期。需要自動合理安排班次,來滿足交期。需要自動跟蹤訂單完成情況,以避免訂單延遲。需要自動調(diào)度設(shè)備、人員滿負荷,滿足資源利用率。需要調(diào)度模具、夾具的準備情況。需要調(diào)度材料短缺與積壓。對車間意外狀況進行處理。如設(shè)備故障、缺料、員工病事假等
一般成熟的APS系統(tǒng)的有限排程引擎, 可以同時檢查資源能力和物料的可用性。不過,也可以對不同的資源選擇有限能力、無限能力。對不同的物料選擇有限物料約束、無限物料約束,有限外加工資源約束或無限外加工資源約束。并可以把以上選擇組合針對不同復(fù)雜的場景以滿足企業(yè)的多種的優(yōu)化目標。
*來源:蔡穎專著-APS走向?qū)嵺`(2007),P62-Infor 公司的Visual APS
.......
更多文章歡迎訪問:
公眾號: 高效計劃與智能調(diào)度排程研究會
微信號: APS_Society
網(wǎng)站: www.itapss.cn