堆垛機入庫原則

堆垛機入庫原則:
1.入口處理:
在托盤 / 料箱在入口入庫時,經過讀碼器, 係統判斷兩件事情:
a.托盤/ 料箱條碼是否有任務,如果沒任務,就近剔出口剔除 ;
b.查看該條碼是否在立庫貨架的某個貨位上,如果不在,說明可以正常入庫;
如果在,可能有兩種情況:
1.該條碼確實在貨架上存在,是人為打印重複條碼導致;這種情況不允許入庫 , 就近剔出口剔除;
2.有可能該條碼在對應貨位的堆垛機上出過庫,但是當時是堆垛機出了 故障沒有給出庫完成報告,人為的把東西取出來,這時候,雖然條碼仍然在貨架上,但是該貨位的狀態應該是 “出庫中 ”,這種情況幸福宝app下载_幸福宝app就可以人為當時這個條碼已經確定出過庫了,就把那個貨位釋放,同時允許其 繼續入庫;

2. 進入堆垛機入庫站台前處理:
進入堆垛機入口前最近的那個讀碼器,係統給托盤 / 料箱分配去哪一台堆垛機 ( 不分配具體貨位,隻是指示去那個堆垛機 ) ;
分配原則:
1.總原則是 N台堆垛機輪流分配 ;
2.在分配的那個時刻,在輪流分配的基礎上把當時發生故障的堆垛機的優先級放到最低 ( 除非所有堆垛機都有故障,才有可能分配到 );
3.對於快爆倉的 ( 即兩側貨架快滿的 ) 那些堆垛機 ( 比如可用貨位很少, 隻有不到 40 個),對於這類堆垛機,把入庫優先級降到第二低;
而且如果所有的堆垛機都全部快爆倉了,那就取消輪流原則,那個可用貨位多,就分配給誰;
因為這時候貨位緊張是最主要矛盾,爆倉危險很大了,已經顧不上輪流分配的運作效率問題了;
4.把入庫站台上已經有貨物的堆垛機的優先級設置為次第三低 ( 這樣優先入庫站台上為空的堆垛機入庫,降低入庫站台上有多個托盤 / 料箱的概率,防止入口被堵);

3.到達入庫站台處理:
托盤/ 料箱到達入庫站台,係統將條碼位置記錄下來,同時通過 Socket
給對應的堆垛機控製係統一個消息,提醒堆垛機動作;
如果條碼到達的位置不一致,係統提醒條碼應該去那裏,實際卻到了那裏,也不做任何其他處理;

4.堆垛機入庫:
堆垛機接收到輸送機係統發送的提醒信息,搜索滿足條件的任務 , 因為入庫站台上有條碼,所以必須要動作,否者入庫站台要被堵住;
正常流程:
條碼有入庫任務,堆垛機分配貨位: 分配原則:
1.根據貨架的每一個貨位長度和高度 , 堆垛機的橫向速度 / 橫向速度,入庫口的坐標 ( 未必是 (1,1), 可能在中間 ) 等條件獲取從入庫口到可用的貨位中運行時間最少的那個貨位作 為分配貨位;
2.如果貨位滿,就分配就近的出庫站台;
貨位分配後,係統立馬給堆垛機發送入庫動作命令; 可能出現的異常流程:
1.條碼異常:
1.條碼未讀取 , 係統生成 1 個特殊條碼的入庫任務,從入庫站到到出庫站台 ( 不入庫 ) ,每個堆垛機的入庫讀不到條碼時生成的特殊條碼都不一樣,以防止混淆;
2.條碼和庫存中某個條碼重複,由於各個貨位上的條碼的唯一性,這個條碼也要變成一個特殊條碼,從入庫站台到出庫站台 ( 不入庫 );
3.條碼和其他正在工作的堆垛機操作的條碼重複,也要將該條碼設置成一個特殊條碼,從入庫站台到出庫站台 ( 不入庫 ) ;
對於上麵這 3 種異常,為什麽要把真實條碼變成一個條碼進行操作,因為條碼作為堆垛機任務調用的一個非常關鍵的識別信息,為了避免數據矛盾,從而把後續矛盾的條碼設置成特殊值,
把不同條碼的物件區分出來;
2. 出庫站台卡住 :
如果出庫站台暫時卡住 ( 機械故障,或者主線堵死 ) ,出庫站台的托盤 /
料箱停在出庫站台暫時無法離開,
這時候,對於從入庫站台直接到出庫站台的任務 , 因為出庫站台堵住, 係統會把入庫站台的托盤 / 料箱暫時入庫到貨架裏麵,等出庫站台什麽

時候可用了,再立馬出庫;

入庫原則特點說明:
1. 入庫貨位不是一下子分配好的;而是在 “運動 ”中逐步分配的,在進入堆垛機前隻是分配去那個巷道,而不指明具體貨位;隻有當貨物到達堆 垛機入口,並且堆垛機可以調度的時候,
才分配貨位和發送動作指令一口氣完成; 為什麽不是一下子分配好貨位?
原因:
1.一下子分配好,萬一入庫到半途上 “反悔 ”,人工幹預把貨物等原因拿走,就會把分配中的貨位 “犧牲 ”掉;現在是到達堆垛機入口才分配,就避免了中途異常導致的貨位不能釋放的現象;
2.分配貨位是需要動態考慮堆垛機狀態的,所以盡量晚分配,才盡可能的接近實時的真實狀態;
3.降低對電控係統的跟蹤要求,如果一下子分配好貨位,萬一貨物跟蹤錯了巷道,就要做異常處理或者從入口直接到出口,重新做入庫;
而幸福宝app丝瓜下载安卓動態分配,就沒這個問題,即使設備走錯位置,係統會 “將錯就錯”,在當前巷道分配貨位入庫;甚至可以這樣理解:上位係統給電控
分配的巷道隻是一個計劃,電控甚至可以不按幸福宝app下载_幸福宝app係統提供的巷道 ( 比如萬一那個巷道的入口故障等 ) 去運作;這樣就大大增加了靈活行;
4.重新分配的 “輕量級 ”處理,如果一下子分配好目標貨位,一旦涉及到半途重新分配,比如半途上讀碼器讀取條碼時候,發現目標貨位對應的堆垛機發生故障,這就需要重新分配新貨位,釋放掉舊的已分配的貨 位;而幸福宝app下载_幸福宝app係統到在半途上隻是分配好去那個巷道,並沒有確定去那個貨位,這樣重分配的工作量就小很多;

2.堆垛機的負載均衡,總原則是輪流,同時配合 考慮到入口滿,堆垛機異常,堆垛機貨位是否接近爆倉等條件綜合考慮;
為什麽不考慮按照不同物料在各個巷道裏做均勻分配? 原因:
很多係統都喜歡采用各個不同物料在各個堆垛機巷道裏均勻分配的原則, 感覺這樣就可以讓堆垛機出庫的時候,讓所有堆垛機同時均勻出庫;

乍一看,這樣很 “合理 ”,但是仔細想想運作,會有以下問題:
如果按照物料的托盤 / 料箱庫存個數做均勻巷道之間的分配,必然會導致入庫時,各個堆垛機的輪訓原則遭到破壞,常見有兩種情況會破壞輪訓:
a.比如 1 號堆垛機發送了故障,修複花了一小時,這一小時內,所有入庫的A物料隻能均勻分配到其他巷道的堆垛機,當 1 號堆垛機修複好後,
就必然會導致之後繼續入庫的 A物料集中往 1 號堆垛機入庫,嚴重破壞輪詢原則,負載不均,容易引起主線堵塞;
b.出庫的時候,如果按照先進先出或者手工選擇等原則,不能保證出庫
的托盤 / 料箱同時均勻的從各個堆垛機出來,可能 1 號機出 20 托, 2 號機出15 托;
那麽再有新的該物料入庫的時候,就會集中先入 1 號堆垛機; 這樣輪詢負載均衡的大原則基本就保證不了;
所以宏觀上嚴格輪詢入庫,不但考慮了運作效率,也同樣兼顧了物料的均勻分配 ( 雖然不能絕對保證 ),即便出現 A物料在 1 號堆垛機入庫很多,其他的很少,也沒關係,因為這樣 1 號堆垛機出庫的概率也會更高,總的宏觀上來說,各個巷道裏的物料是差不多的;

3.每台堆垛機貨位的分配,以最短運作時間為分配依據為什麽不以最短距離作為分配原則?
原因:最短路徑分配,樣子像一個圓弧,但提高效率的本質是運作時間短,而不是距離短,所以要考慮堆垛機貨叉橫向和縱向動作時間最長的那個作為運作 ( 木桶效應 ) ;
獲取一個入庫時間最短的貨位作為目標貨位二佛涅槃原則; 為什麽不對不同物料按區域劃分?
原因:自動化倉庫是個黑匣子,入出庫作業不需要人工查找,所以沒必要把不同物料分區域管理;
為什麽不按 ABC 分類,考慮常用的物料優先放在前麵,不常用的優先放後麵?
原因:不同物料作業可能是動態的,所以 ABC 分類也是動態的,即便係統動態根據曆史作業量動態調整 ABC 屬性,也往往不能判斷準確,
讓那些頻率低的物料入庫到後麵的列;理論上可能會提高些效率,但是
提高有限,而且控製不好,分析的不準確,效率反而不如不考慮;
比如:倉庫貨位利用率如果很低,就算是 C類不常用的物料,一下子放到後麵的列,反而浪費很多;

倉庫貨位利用率如果很高,貨位一直是快滿的狀態,基本 A類的也照樣被迫放到後列;
所以不考慮 ABC 分類的優先前後防止的方法,折衷下來是一種 “性價比”比較高的方法;

堆垛機的入出庫調度中所設計的幾個大的環節,我都寫出來了,可能也有遺漏;
這也是我對圍繞堆垛機為中心的幸福宝app丝瓜下载安卓庫的運作控製的主要控製點: 基本原則是:
1.配置性的路徑,任意位置都能檢索到目標位置;哪怕設備走錯了;就想有地圖,哪怕公交車坐過了,照樣能夠通過其他路徑到達目的地;
2.入庫口不能堵死,哪怕是個沒任務的托盤,必須讓它從出口出來,如果出口暫時堵塞,就暫時入庫,出口什麽時候通了,再出來;
3.貨位分配最後完成,很多人都是 RF組盤的時候,就做貨位生成鎖定,這樣做比較死,而且異常處理不方便;我這邊就算托盤到達入庫口也不分配,隻有等堆垛機自身條件也滿足了,才分配,也就是分配貨位
和堆垛機動作是一個事務,這樣到 " 最後關頭 " 才分配有助於異常的處理和設備的優化;
4.注重貨位的平均和效率的平衡;
5.對出庫流量控製做了重點的配置管理;
堆垛機出庫原則;
1. 出庫時機觸發:
1.正常情況下 , 每台堆垛機 1 分鍾觸發一次掃描任務的事件;如果條件滿足,就執行動作,不滿足就等下一分鍾繼續判斷 ;
2.WCS 給堆垛機發送任務是單條的,也就是做完一個再做下一個;當一個堆垛機當前多個排隊任務的時候,完成一個,馬上觸發下一個任務
2.當相關設備狀態發生變化時,馬上出發掃描任務事件;比如:堆垛機狀態離線變在線,異常變正常,對應的出庫站台不可用變可用;
3.當WMS 下發出庫任務到接口的時候 , 接口程序會自動發消息提醒對應的堆垛機控製係統,馬上觸發掃描任務事件;
4.流量控製的目標位置,每完成一個任務,尋找滿足下麵兩個條件的第一個任務對應的堆垛機,給其發送消息提醒,馬上觸發掃描任務事件;
a.待出庫任務中最優先的
b.對應堆垛機可以調度的 ( 堆垛機狀態正常 , 沒有執行其他任務待機狀態)

所以,出庫觸發事件在不忙的時候 ,1 分鍾觸發一次; 但是任何相關的設備狀態或業務狀態發生變化都會觸發堆垛機獲取任務的事件;
這樣設計的巧妙在於:
1.不做那種傳統的類似 1 秒中掃描一次任務觸發方式;這樣太浪費資源,因為大部分時候是掃描不到任務的;反而消耗了很大資源;
2.各種相關條件變化都導致觸發,實時性得到了保障,實際效果,一般在任務下達後或者連續任務間隔都不超過半秒鍾;
3.為什麽設計每分鍾觸發一次掃描事件,就是防止萬一程序觸發遺漏, 或者網絡不好的時候,各個係統之間的消息觸發丟失,還能保證係統正常走下去;
( 最壞的可能也就是浪費 1 分鍾,但不至於係統停滯 );當讓 1 分鍾是可設置的;

2. 出庫動作條件的判斷:
這是一個重點,條件要滿足下麵 3 個:
1.硬件自身滿足:
a.WCS 係統和堆垛機通訊正常;
b.堆垛機在線;
c.堆垛機當前沒有異常;
d.對應的出庫站台可用 ( 沒有被堵住 );
2.目標位置流量控製滿足:
很多時候 WMS 會批量把很多出庫任務下發給 WCS 係統,但是 WCS 不能一口氣把這些托盤 / 料箱全部出庫,因為這樣會有把整個線體堵死的風險;
尤其對於那些在線揀選又回庫的托盤 / 料箱; 所有很多目標位置都有流量的控製,這個數量可以設定;
關於流量有以下三點:
a.目標位置的流量是指所有到達該位置的正在執行的托盤 / 料箱個數; 或者說堆垛機已經下架但是未完成的任務;所以很多時候如果看到目標 位置上不到額定控製數量,很可能是還有很多正在線路上繼續前進;
b.如果因為線路堵塞等原因,某個托盤 / 料箱兜了 3 圈( 可設置 ) 後剔出, 那麽這個托盤 / 料箱不作為計數;
c.萬一存在時間很久的任務一直未結束 ( 比如是任務為確認 ) ,那麽超過

3 天的數據就不作為計數;
3.各個堆垛機之間的任務順序控製:
a.如果沒有堆垛機之間的彼此約束:各個堆垛機的入出庫任務是獨自調 度的;所以有這種風險: 1 批出庫任務,比如有 100 個料箱,分布在各個堆垛機裏 ( 未必很均勻 ) ,理論上是按這些出庫任務的生成順序出庫, 但是因為流量控製,某個時刻,當僅有一個流量可以放行的時候,如果 最優先的任務在 2 號堆垛機,但是這個時候可能 2 號機正在入庫後者故障,這個機會就可能讓給 1 號堆垛機;當 2 號堆垛機物理上滿足出庫條件時,因為流量滿了,暫時不能出庫;等再有一個流量放出的時候,係 統會優先觸發 2 號機動作,但由於其他 10 多台堆垛機都同時在搶這個唯一的流量,所以往往事與願違,優先級最高的那個任務不能及時出來;
b.所以每個堆垛機調度的時候,要 “看看 ”其他兄弟堆垛機是不是有比自己更優先的任務,如果有,就不要做相同目的地的任務,可以做入庫或 者做去其他目的地的出庫任務; 當然,如果優先級最高的出庫任務對應的兄弟堆垛機正在忙其他活或者故障的時候,就不讓了,也就是說, 隻有在兄弟堆垛機有更高優先級的任務,並且空閑,才讓出相同目的地 的出庫機會;
這樣設計的巧妙在於:
1.對於同一個目的地,盡量讓其下發的任務,按照順序執行 ( 由於線路問題,未必絕對順序執行,但是不會出現先下發的任務等了很久不執
行,後下發的反而提前執行了 );
2.對於正在工作中或異常中的堆垛機,不作為是否有優先任務的等待控製,主要是因為效率;這樣邏輯順序和設備效率都有所兼顧;

發表評論

郵箱地址不會被公開。 必填項已用*標注