(FlexSim 学习笔记)合成器打包的工作机制分析和实现
????????在之前文章《“(FlexSim 學習筆記)案例1:不合格產品二次優先加工,兩次不合格作廢》中簡單描述了下 flexsim 合成器的合成打包工作原理,并在該文“3.3、合成器合成打包選擇“這節內容中,通過直接修改“更新合成器組件列表”事件的代碼,以適應實際要求。
? ? ? ? 言猶未盡。直接修改“更新合成器組件列表”事件的總代碼量雖然只有幾行,但涉及到樹節點操作,不太方便理解。故本文嘗試再仔細闡述flexsim的合成器工作機制,并采取不用代碼的方式來實現其工作過程。
一、合成器打包工作機制
????????首先我們來看合成器的組件列表。合成器始終會先接收來自輸入端口1的貨品(并把它當作容器),然后再按下圖所示的組件列表,分別接收其他輸入端口的貨物進行組合打包。例如下圖表示合成器從輸入端口1接收到容器后,再從輸入端口2/3/4分別接收2、3、2個貨物,然后進行打包。也即打包完成后,該容器中共有7個貨物。
? ? ? ? 上圖的數量設置多少無所謂,因為實際案例中往往需要按訂單,設法動態更新此表的數量。
? ? ? ? 如何更新呢?方法就是在合成器的On Entry觸發器中,設置動態更新合成器組件表。這樣的話,只要合成器從輸入端口1收到某個容器,就會立刻執行更新合成器的組件列表。
????????上圖涉及的order表是全局表,需要預先創建,例如下圖(3行5列)。是不是與3行1列的合成器組件表非常相像,除了列多了點?
?
?? ? ? ? order全局表有5列,要用它去更新合成器組件列表,那么究竟該取那列值呢?這就涉及利用某個標簽值了。例如下圖的流程,某個標簽值 item.orderID=3(左圖),就是取全局表order(中圖)的第3列值的意思,再用此列值去更新合成器組件表(右圖)的相應數量。
? ??? ??
? ? ? ? 那么標簽orderID 又從哪來呢?可以考慮給容器定義orderID標簽。這樣的話,按合成器的工作機制,合成器會先從輸入端口1接收容器,緊接著觸發On Entry 事件,因為我們在該事件中設置了更新合成器組件,那么flexsim就可利用此容器的orderID標簽值,去執行更新合成器組件列表的一系列操作。
?二、案例
????????接下來我們用一個案例來具體實現合成器的打包工作機制。
? ? ? ? ?如上圖,有4個發生器,第1個是托盤發生器產生托盤容器(與合成器A連接時,應保證是合成器的第一個輸入端口),其他是貨物發生器,分別產生紅/綠/藍貨物。托盤離開發生器時,將生成訂單信息。合成器接收到托盤后,按訂單要求進行打包(即合成器最終在此托盤中分別放置紅/綠/藍貨物若干數量,進行打包)。
三、解決方案
1、創建order訂單全局表,3行1列
?2、托盤
????????在工具箱臨時實體欄中選擇托盤,新增4個數值標簽,名稱及值分別為 r=0,g=0,b=0,orderID=1
????????r 表示訂單中的紅色貨物數量,g 表示綠色貨物數量,b 表示藍色貨物數量,orderID 對應訂單全局表 order 的第幾列(列索引) ,因為order表只有1列,故orderID初始值設置為1,表示取訂單表order的第1列。
3、托盤發生器
3.1、托盤發生器的臨時實體欄選托盤,表示該發生器產生托盤。
????????
3.2、在托盤發生器的On Creation觸發器分別設置托盤的 r,g,b 標簽值為1~5的隨機數。
????
????????這樣的話,每產生1個托盤,托盤的 r/g/b 分別就有隨機值,比如 r=3,g=5,b=2,表示此托盤要對應的訂單為紅色貨物3個,綠色貨物5個,藍色貨物2個。
3.3、在托盤發生器的On Exit 觸發器中,設置”寫入全局表“3次,分別將托盤的 r,g,b 數量寫入訂單全局表order的第1行第1列,第2行第1列,第3行第1列。
?? ?? ?
4、紅色貨物發生器/綠色貨物發生器/藍色貨物發生器
????????在紅色貨物發送器的On Creation 觸發器中,設置Type標簽和顏色為1,產生類型為1的紅色貨物。
? ? ? ? 其他顏色貨物發生器的設置類推。
5、合成器
????????在合成器的On Entry觸發器中,設置”更新合成器組件列表“,表為order,標簽為orderID,表示通過托盤的orderID值,來取order表的對應列,去更新組件表。這里托盤的orderID值已經有初始值=1,所以更新取的是order表的第1列。
?
6、全部完成。
四、最終效果
五、小結
1、定義一個訂單全局表;
2、對托盤容器,定義和訂單數量相關的標簽,以及和訂單列索引相關的標簽;
3、在某個合適的觸發器中,利用托盤標簽值去修改訂單全局表;
4、在合成器的進入觸發器中,用訂單全局表去更新合成器組件表。
總結
以上是生活随笔為你收集整理的(FlexSim 学习笔记)合成器打包的工作机制分析和实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Struts Web设计与开发大全》
- 下一篇: Vista优化大师