FlexSim实战练习(二)——多品种小批量订单拣选作业
FlexSim實戰(zhàn)練習(xí)(二)
提示:這里需要用到腳本函數(shù)有兩個
- Array.splic(int fromindex,int count)
- Array.splic(int fromindex,int count,Array insert())
Array.append(Array otherArray)
Array myArray = [1,2,3,4,5]; myArray.append([7,8,9]); //[1,2,3,4,5,7,8,9]以上FlexSim軟件版本為19版。
1、案例背景及3D布局說明
如圖所示,系統(tǒng)會按照時間表(Arrival Schedule)生成不同類型的產(chǎn)品。 首先,根據(jù)產(chǎn)品類型分別進(jìn)入對應(yīng)的兩個傳送帶上; 然后,根據(jù)產(chǎn)品的批次在合成器上進(jìn)行合成; 最后,進(jìn)入到一個暫存區(qū)進(jìn)行緩存,等待訂單計劃下達(dá)。產(chǎn)品到達(dá)
其中,ID表示產(chǎn)品編號,Type表示產(chǎn)品類型,B_ID表示產(chǎn)品一批次的數(shù)量。
這張圖表示,一共有4種類型的訂單(該全局表名稱“info”),其中類型1訂單需要{ST101,ST102,ST103,ST104}共4種產(chǎn)品組成,類型2,、類型3以及類型4訂單如圖所示。
2、詳細(xì)流程圖文解釋
在整個仿真項目流程中,一共可以分為三個部分:
- 產(chǎn)品在發(fā)生器上產(chǎn)生,通過傳送帶進(jìn)入合成器進(jìn)行合成批次,最后進(jìn)入緩存區(qū)等待訂單下達(dá);
- 訂單下達(dá)指令;
- 訂單下達(dá)后,操作員就會前往緩存區(qū),對緩存區(qū)上的產(chǎn)品進(jìn)行刷選,選擇下達(dá)訂單需要的產(chǎn)品搬運至放有tote的暫存區(qū)上進(jìn)行訂單組成。當(dāng)滿足訂單需求后,操作員就會搬運該訂單前往中轉(zhuǎn)場。
第一步
完成后,你的模型布局應(yīng)該類似于上圖。
具體操作如下:
注意,2個Source、2個Queue與2個Combiner鏈接時,必須要Source首先鏈接到Combiner,且2個Source都產(chǎn)生Pallet.
以上是"第一部分"流程的所有活動。
第二步
具體操作如下:
(1)1個 Source
(2)1個Queue
(3) 1個"Operator1"
應(yīng)該會有人問,這第二步的作用是什么。它的作用就是:利用發(fā)生器按時間間隔發(fā)送一個Box到Queue上,使進(jìn)入觸發(fā)的代碼被觸發(fā),這一個流程來模擬"訂單下發(fā)"動作。
Source的設(shè)置可以參考我的,當(dāng)然,你也可以自己編寫。
以上是"第二部分"流程的所有活動。
第三步
(1)1個 Source;
(2)12個Queu;
(3)1個BasicFR;
以下操作都將在Process Flow 上進(jìn)行:
(1)拉入1個事件監(jiān)聽的發(fā)生器,并用吸管吸取操作員的On Message,同時在Msg Param1這一行,寫入"Order",并選擇assign,Order表示訂單編號。
(2)拉入1個Pull form List 和1個List,通過Pull form List右邊的感嘆號與List進(jìn)行鏈接。打開Pull form List,在Assign to 中寫入token.Pallet,并在Partition ID填入2,表示為拉入的token.Pallet是10個Queue進(jìn)入的Tote。
(3)拉入2個Assign Labels,并分別命名為“goal_01”和“Array”。goal_01的作用是獲取當(dāng)前下達(dá)訂單對應(yīng)需要幾種產(chǎn)品,因此,代碼為Table("info").cell(token.Order,1).as(Table).numRows。Array的作用是將當(dāng)前訂單對應(yīng)的產(chǎn)品編號,通過數(shù)組的形式存儲到對應(yīng)的Queue上,即up(token.Pallet)。代碼如下:
這里,goal_02的作用是獲取進(jìn)入緩存區(qū)的產(chǎn)品數(shù)量Queue_Num=token.Q_01.subnodes.length,在Decide中進(jìn)行判斷token.Queue_Num >=1,如果成立,token就會順著直線往下走;否則,token就會前往Wait for event等待并監(jiān)聽緩存區(qū)有產(chǎn)品進(jìn)入后,再次判斷token.Queue_Num >=1是否成立。
其中Custom Code的代碼如下:
判斷完畢后,將判斷結(jié)果賦值給BasicFR的panduan標(biāo)簽。最后通過Decide把token送到對應(yīng)的下游去。
8. 這一步?jīng)]有什么好講的,主要是從BF上save_item存著需要搬運的訂單組,以及訂單組的長度save_item_L;
9. 這里的代碼需要注意的是,把BF上存放訂單的Array("save_item ")清空,用于下個token進(jìn)入時的保存。
以上是第三步的所有活動。
總結(jié)
由于篇幅的限制,許多知識點無法詳細(xì)說明,而且其中一些代碼只適用于訂單數(shù)量為4個的時候,存在優(yōu)化的空間。
總結(jié)
以上是生活随笔為你收集整理的FlexSim实战练习(二)——多品种小批量订单拣选作业的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是ajax【解释和实例】
- 下一篇: 数字芯片的设计流程及其使用工具