全球FlexSim系统仿真中文论坛
标题:
releaseitem命令简介
[打印本页]
作者:
zorsite
时间:
2017-5-13 12:11
标题:
releaseitem命令简介
本帖最后由 zorsite 于 2017-5-13 12:25 编辑
5 o: S0 c/ P+ c7 o4 T; \
, g) m4 |& U" `8 {& `: B
releaseitem(obj flowitem [, num port ])
* s5 Y" B" @8 r% G
释放指定的临时实体。
5 s B1 p; j7 ?4 A9 J# W: `, X
releaseitem命令仅用于以下两种情况;
! o/ u0 Q% P4 P
1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。
+ k* W7 P4 W: @5 R6 j0 J
2.临时实体在任意固定实体之中,并被holditem命令控制。
+ k1 Q& e" F S: T4 s0 O1 l
第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。
$ F8 @! u! L% ^: ?+ e7 |# q( w6 P
本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.
9 A* E+ u, x" ~. u: Q
0 K \! j) V5 ?! V- Q
命令示范:
& j. `! H7 u9 P* [9 h$ F7 m t
releaseitem(item);
% S2 R$ U9 d3 g; U6 ?- s# B2 z
releaseitem(rank(current,1),1);
& y6 g) ~8 V4 Z4 |% M9 N2 s
releaseitem(last(current),getitemtype(item));
" {" R4 s1 O1 M5 ] v; p8 f# u
% l# l$ ^. k+ r& F# L- Y6 f4 {9 e- x1 w
实际使用中发现,如果要释放的临时实体不存在,程序将报错。
1 x* [$ ~1 \ p4 C* G' y7 t
使用该命令时需要注意,确保第一参数flowitem指向正确。
+ L5 d. j9 t% j+ F4 s, Z! U5 r3 f
4 _" o' h1 M. i' ]/ s
3 Q; ^; `2 y3 C" ~$ h
案例1:
% K- U# W: l% ]5 `
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。
0 U6 R& |; k* F4 F
1.如果命令执行时货架中没有2个临时实体,程序将报错。
4 G/ y- }& K) H Q. E! o9 A
6 K8 @3 r+ G2 y5 V, C8 B
2.假设货架存在2个临时实体。
" i' A) \/ |+ K( \
( d' y3 K* R" l/ N1 F
/ M" E# ?# H) i& Y
(1)不使用运输工具。
, `" I1 @: L* w+ T/ Y9 U
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?
. }0 W# v6 c" J* P
第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);
( m- O. G( O' b
* g3 }4 [% J0 g; D1 Y& w
, B$ C+ ^ K/ k, e2 N6 R% E: x
(2)使用运输工具。
6 P8 M6 ~& b7 R
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);
9 d2 W3 O" f1 ]6 x& z( M
0 h; G' s+ T1 S( }
: O" e0 U& ^- Z6 c
3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。
% o0 c# a. f* `; l- d! o; t
- ~& i1 X8 E+ X4 [( {% w2 ]
& f' r- I' V8 r7 z8 w7 Q
案例2:
0 z: i7 ^9 O5 x0 a( Z9 `
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。
* q' O3 _" }% G7 `
下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。
0 k- k; k5 ^5 b
现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
作者:
李锋
时间:
2022-2-28 13:16
请问,不使用运输工具这种情况在哪里编写代码呢?
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3