全球FlexSim系统仿真中文论坛

标题: releaseitem命令简介 [打印本页]

作者: zorsite    时间: 2017-5-13 12:11
标题: releaseitem命令简介
本帖最后由 zorsite 于 2017-5-13 12:25 编辑
7 J, o* ~7 e  s' S
8 P6 W) k4 |  r& Ereleaseitem(obj flowitem [, num port ])" @. ^$ S7 a' t0 P! x3 I3 r# M
释放指定的临时实体。
2 N. _$ w2 \2 Breleaseitem命令仅用于以下两种情况;. J) C, T3 J! O, [
1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。
) U9 y5 d2 o; s. }) a2.临时实体在任意固定实体之中,并被holditem命令控制。
8 o$ F. B" Q# l7 `, H: n第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。  d% Z3 l" y2 |/ e& h1 I
本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.
. c3 u+ v6 |8 B# G2 u& Y/ A
7 j, o8 f; V. _) h$ n# J
命令示范:, P" x- G6 {+ s2 S  ~9 J. J: b
releaseitem(item);7 {, j/ o, Y4 h$ h
releaseitem(rank(current,1),1);5 R4 |# D  f6 T; w/ p$ c! \
releaseitem(last(current),getitemtype(item));
+ V. L( p* g$ P& _# @* [/ ~$ j4 O& z2 C* b- ?1 l2 G
实际使用中发现,如果要释放的临时实体不存在,程序将报错。2 b4 ^8 [" D3 X5 \
使用该命令时需要注意,确保第一参数flowitem指向正确。
0 r1 U7 x4 j5 j
% i% N  y- t1 s+ m2 C, {

4 B- B3 v' y2 @/ s2 t案例1:
2 b% ?9 O& A: l1 ]8 V! _
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。! N# O+ X. J" _* y$ Z1 X& S' m
1.如果命令执行时货架中没有2个临时实体,程序将报错。" p3 n( x& D- S8 V& w

4 a0 F' K: w' p7 w9 Q2.假设货架存在2个临时实体。
9 P( }1 |" `# k7 S+ N7 {/ l" d3 k0 E- ^  `: d, o) y

1 C- {; M0 ?1 T: J7 w+ o2 X  Z(1)不使用运输工具。# Q- U" y& U4 \0 z: J
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?
; T% Q6 w0 i3 @# u第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);, \, x+ j' u4 \; h" A+ G' ]: R
: A  `4 A( O$ [6 i" }! k% F

7 j/ x0 P, \, n; j0 w5 P. n(2)使用运输工具。( E8 q0 F1 H$ ]3 p
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);
) G* h$ v9 `, u0 f0 l- N1 _0 u# F
3 Y! L3 ^9 |: n  r3 X7 r% B, \: w. P" }; N+ P7 R
3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。
% G5 Y2 O; {5 P  F$ `
; A" m2 B( O2 _6 C

: ?1 v* p, F+ K案例2:
2 X2 m5 y* `! C" V6 ~
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。
, l1 N. k- z& y2 R' s6 `下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。
  j/ g1 g5 F! i- L0 E" I8 x3 E现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
作者: 李锋    时间: 2022-2-28 13:16
请问,不使用运输工具这种情况在哪里编写代码呢?




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