全球FlexSim系统仿真中文论坛

标题: 【求助】关于货物的流向与拉入问题 [打印本页]

作者: liuzhifan    时间: 2017-8-13 12:15
标题: 【求助】关于货物的流向与拉入问题
简化模型描述:前端集配20个轮胎(16个主胎,4个备胎),完成后转运至中间暂存区,进行人工二次集配(4个主胎,1个备胎上线)。) `" S7 U+ K+ V+ p8 G* H3 j/ D
[attach]3872[/attach]" o6 R- f5 U; h, q
模型构建思路一
( N' u- k1 N2 T6 a+ m0 f' a5 z为了实现二次集配作业,我采用在第二个合成器进入触发时发生消息给作业员,作业员在收到消息后,消息触发器触发,执行编写好的任务序列。
( i4 T5 V  K5 O问题:实现了集配4个主胎,1个备胎的作业,但是如果中间暂存区没货了,操作员执行消息触发器的任务序列就会报错了。4 z! O9 H/ T! e/ f, I& F
解决办法:采用判定中间暂存区的货物量,来控制虚拟订单是否流入合成器, Q9 E2 F" u* E6 [3 p4 l
思考:在中间暂存区缺货状态下,如何把取货任务序列先暂存起来(如暂存于操作员的任务序列队列,而不激活任务)。
, n6 Z# ?# G' J$ x0 T! k[attach]3873[/attach]
: C* B- ^0 g6 c8 `4 k
- B+ B+ M* a9 ]模型构建思路二
/ Q( p0 @7 o( ~; I4 O% I: n采用合成器的拉入条件来进行拉入(4个主胎,1个备胎),这样的话只有在暂存区有货时,操作员就会去进行搬运,没货时就不搬运,从而不会发生上面的报错。+ F% x5 l$ M0 l
[attach]3876[/attach]- k' A# n% O- w! c- V% m* W
[attach]3874[/attach]
! L9 w% k  ?2 t6 n( w5 r7 A问题:(这个问题也是我经常弄不清楚的),模型运行时候只进行了一次拉入(4个主胎,1个备胎),
- J& M" _( _, u7 _3 S$ E( R" w拉入的时候需要上游与下游同时准备好就可以进行拉入的触发,我理解的上游准备好就是触发了“发送至端口”触发器,
8 c3 T* m$ c  B6 B; y如果暂存区(上游)只进入了一个实体,就只触发了一次“发送至端口”触发器,那么是不是就意味着只能进行一次拉入的触发。
8 T" q- W/ l' \0 I* r, l[attach]3875[/attach]6 ^. W+ I- B- m1 i& ^
+ [5 R! a/ V$ y: p" Y. ?+ E

作者: 蓝桥书生    时间: 2017-8-17 10:11
6 ^# V$ b) T! v3 s( o! _2 v; |
思路一:在暂存区容量为零的时候,是不能创建任务序列的,此时搬运物的指向空,执行任务序列的时候会因为找不到临时实体而报错。我这里写了一种解决方案:在操作员上加一个“state”标签,初始值为0,下游合成器进入托盘的时候先判断暂存区的容量,如果非零才向操作员发送消息,并将操作员标签值设为0;如暂存区容量为零则将操作员标签纸更改为1,表示操作员出于等待任务的状态。同时,当暂存区每进入一个托盘的时候读取操作员的标签值,如果为1,则向操作员发送消息启动任务。此外你的模型还需完善的地方有:你的模型只是产生了一个托盘,若是上游托盘源源不断的产生,则代码有些地方需要作改变,比如暂存区里item的引用方式再用first就会出错了,或者是一个托盘还未装载完时进入了一个新的托盘等等。
1 R; P, l+ [8 V9 z; F& n# H' {3 C: F+ i" j; M* @9 R7 K; V! S
思路二:你仔细读读你选择的临时实体类型数组的拉入方式代码,它的功能并不是按照数组临时实体类型的比例拉入item。你的模型只拉一次并不是这部分代码起的作用,而是暂存区使用运输工具里的代码的作用。对于拉入方式,我也在默认代码的基础上做了一些更改,可以达到你的要求。3 n1 B7 J: T  C6 n
ps:第一个模型版本是2017.1.4,第二个模型版本是7.3.6.
9 `- F. j  Y1 P9 J




欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) Powered by Discuz! X3.3