FlexSim实战练习(二)——多品种小批量订单拣选作业
FlexSim实战练习(二)
提示:这里需要用到脚本函数有两个
- 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布局说明
如图所示,系统会按照时间表(Arrival Schedule)生成不同类型的产品。 首先,根据产品类型分别进入对应的两个传送带上; 然后,根据产品的批次在合成器上进行合成; 最后,进入到一个暂存区进行缓存,等待订单计划下达。产品到达
其中,ID表示产品编号,Type表示产品类型,B_ID表示产品一批次的数量。
这张图表示,一共有4种类型的订单(该全局表名称“info”),其中类型1订单需要{ST101,ST102,ST103,ST104}共4种产品组成,类型2,、类型3以及类型4订单如图所示。
2、详细流程图文解释
在整个仿真项目流程中,一共可以分为三个部分:
- 产品在发生器上产生,通过传送带进入合成器进行合成批次,最后进入缓存区等待订单下达;
- 订单下达指令;
- 订单下达后,操作员就会前往缓存区,对缓存区上的产品进行刷选,选择下达订单需要的产品搬运至放有tote的暂存区上进行订单组成。当满足订单需求后,操作员就会搬运该订单前往中转场。
第一步
完成后,你的模型布局应该类似于上图。
具体操作如下:
注意,2个Source、2个Queue与2个Combiner链接时,必须要Source首先链接到Combiner,且2个Source都产生Pallet.
以上是"第一部分"流程的所有活动。
第二步
具体操作如下:
(1)1个 Source
(2)1个Queue
(3) 1个"Operator1"
应该会有人问,这第二步的作用是什么。它的作用就是:利用发生器按时间间隔发送一个Box到Queue上,使进入触发的代码被触发,这一个流程来模拟"订单下发"动作。
Source的设置可以参考我的,当然,你也可以自己编写。
以上是"第二部分"流程的所有活动。
第三步
(1)1个 Source;
(2)12个Queu;
(3)1个BasicFR;
以下操作都将在Process Flow 上进行:
(1)拉入1个事件监听的发生器,并用吸管吸取操作员的On Message,同时在Msg Param1这一行,写入"Order",并选择assign,Order表示订单编号。
(2)拉入1个Pull form List 和1个List,通过Pull form List右边的感叹号与List进行链接。打开Pull form List,在Assign to 中写入token.Pallet,并在Partition ID填入2,表示为拉入的token.Pallet是10个Queue进入的Tote。
(3)拉入2个Assign Labels,并分别命名为“goal_01”和“Array”。goal_01的作用是获取当前下达订单对应需要几种产品,因此,代码为Table("info").cell(token.Order,1).as(Table).numRows。Array的作用是将当前订单对应的产品编号,通过数组的形式存储到对应的Queue上,即up(token.Pallet)。代码如下:
这里,goal_02的作用是获取进入缓存区的产品数量Queue_Num=token.Q_01.subnodes.length,在Decide中进行判断token.Queue_Num >=1,如果成立,token就会顺着直线往下走;否则,token就会前往Wait for event等待并监听缓存区有产品进入后,再次判断token.Queue_Num >=1是否成立。
其中Custom Code的代码如下:
判断完毕后,将判断结果赋值给BasicFR的panduan标签。最后通过Decide把token送到对应的下游去。
8. 这一步没有什么好讲的,主要是从BF上save_item存着需要搬运的订单组,以及订单组的长度save_item_L;
9. 这里的代码需要注意的是,把BF上存放订单的Array("save_item ")清空,用于下个token进入时的保存。
以上是第三步的所有活动。
总结
由于篇幅的限制,许多知识点无法详细说明,而且其中一些代码只适用于订单数量为4个的时候,存在优化的空间。
总结
以上是生活随笔为你收集整理的FlexSim实战练习(二)——多品种小批量订单拣选作业的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 什么是ajax【解释和实例】
- 下一篇: 数字芯片的设计流程及其使用工具