全球FlexSim系统仿真中文论坛
标题:
【求助】关于货物的流向与拉入问题
[打印本页]
作者:
liuzhifan
时间:
2017-8-13 12:15
标题:
【求助】关于货物的流向与拉入问题
简化模型描述:前端集配20个轮胎(16个主胎,4个备胎),完成后转运至中间暂存区,进行人工二次集配(4个主胎,1个备胎上线)。
- i% x# k- I- F. L2 W% b5 {0 s
[attach]3872[/attach]
5 {5 m4 c. W: ~- O( G4 z8 K/ T
模型构建思路一
" [6 p2 I* d) Q2 ]; e7 b' ~9 ~: L
为了实现二次集配作业,我采用在第二个合成器进入触发时发生消息给作业员,作业员在收到消息后,消息触发器触发,执行编写好的任务序列。
, L- ?7 O' [1 Y$ Q+ p7 X
问题:实现了集配4个主胎,1个备胎的作业,但是如果中间暂存区没货了,操作员执行消息触发器的任务序列就会报错了。
! h$ W0 U. J \ I1 Y
解决办法:采用判定中间暂存区的货物量,来控制虚拟订单是否流入合成器
* q$ c% y, B; A/ I0 s6 ]
思考:在中间暂存区缺货状态下,如何把取货任务序列先暂存起来(如暂存于操作员的任务序列队列,而不激活任务)。
) E1 q' p1 [5 v7 t
[attach]3873[/attach]
; b; g! U1 Z* M, q
( H- m, y7 |; u
模型构建思路二
3 S" x/ Z! M! Z4 D' {1 d' k
采用合成器的拉入条件来进行拉入(
4个主胎,1个备胎
),这样的话只有在暂存区有货时,操作员就会去进行搬运,没货时就不搬运,从而不会发生上面的报错。
4 F( \/ G$ e' Z5 J7 D
[attach]3876[/attach]
3 A* L# m& n( m! V
[attach]3874[/attach]
. C* k/ i: o: j! L/ E$ @( f. i
问题
:(这个问题也是我经常弄不清楚的),模型运行时候只进行了一次拉入
(4个主胎,1个备胎),
4 `) J6 Q2 I/ K1 E0 h, H! f) |
拉入的时候需要上游与下游同时准备好就可以进行拉入的触发,我理解的上游准备好就是触发了“发送至端口”触发器,
; J2 m$ p% s7 \% p* m- C
如果暂存区(上游)只进入了一个实体,就只触发了一次“发送至端口”触发器,那么是不是就意味着只能进行一次拉入的触发。
( n/ h }( `- _! H2 v- q3 T
[attach]3875[/attach]
4 ~( a% `, ^$ L4 \; |/ A; W! j
6 c8 P' i/ ~0 G
作者:
蓝桥书生
时间:
2017-8-17 10:11
6 j5 q5 O/ F) l& Q8 s' B1 c) E
思路一:在暂存区容量为零的时候,是不能创建任务序列的,此时搬运物的指向空,执行任务序列的时候会因为找不到临时实体而报错。我这里写了一种解决方案:在操作员上加一个“state”标签,初始值为0,下游合成器进入托盘的时候先判断暂存区的容量,如果非零才向操作员发送消息,并将操作员标签值设为0;如暂存区容量为零则将操作员标签纸更改为1,表示操作员出于等待任务的状态。同时,当暂存区每进入一个托盘的时候读取操作员的标签值,如果为1,则向操作员发送消息启动任务。此外你的模型还需完善的地方有:你的模型只是产生了一个托盘,若是上游托盘源源不断的产生,则代码有些地方需要作改变,比如暂存区里item的引用方式再用first就会出错了,或者是一个托盘还未装载完时进入了一个新的托盘等等。
5 D6 { Z4 M( ~2 C% J6 t1 F: P
# m: W, W6 a- Q1 u
思路二:你仔细读读你选择的临时实体类型数组的拉入方式代码,它的功能并不是按照数组临时实体类型的比例拉入item。你的模型只拉一次并不是这部分代码起的作用,而是暂存区使用运输工具里的代码的作用。对于拉入方式,我也在默认代码的基础上做了一些更改,可以达到你的要求。
2 g8 g' |! H4 J8 r% c' p
ps:第一个模型版本是2017.1.4,第二个模型版本是7.3.6.
7 [+ Q7 [1 M+ t9 J
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3