全球FlexSim系统仿真中文论坛

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

作者: zorsite    时间: 2017-5-13 12:11
标题: releaseitem命令简介
本帖最后由 zorsite 于 2017-5-13 12:25 编辑 % Z9 ]" ]' p+ p+ r2 [6 M

. |; `- h% R$ F& dreleaseitem(obj flowitem [, num port ])/ j) j2 P; C& o0 @5 Z0 v
释放指定的临时实体。
: P: I" Z3 W! areleaseitem命令仅用于以下两种情况;1 {' H6 T1 o6 W* x% g( W+ x
1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。
4 i- p1 o, o1 d, n$ h2.临时实体在任意固定实体之中,并被holditem命令控制。5 ^, ?! M8 T' p' K/ K: w4 h% d
第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。, Y/ Q( b( S9 J. L
本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.
/ X+ `* p' n$ m% T% F) m0 a$ P: j1 u- A8 `$ G
命令示范:
2 u, f9 Q+ N% }: }. M8 A
releaseitem(item);
# x7 V7 @3 U' ?& U; T) {/ ereleaseitem(rank(current,1),1);. M  X' `3 x- s; [6 [8 k1 u
releaseitem(last(current),getitemtype(item));
- B: a- t6 ^. \% i* }
& ^! v1 D! [8 q) x& I$ |( F" R实际使用中发现,如果要释放的临时实体不存在,程序将报错。- ]5 t3 \  W3 s" V+ k, t; S* \$ C
使用该命令时需要注意,确保第一参数flowitem指向正确。
2 ~5 I3 x7 `$ \3 o
6 E( X$ z. j: j; M2 v; {+ K6 a

: ~5 Z/ |! a# `- }2 h案例1:$ q2 ~; N/ a- q
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。# m' F, w  L' \, O2 d, L
1.如果命令执行时货架中没有2个临时实体,程序将报错。
- H! O5 [5 T7 ~) K/ Q: @/ _( g( l1 e) t) [; e
2.假设货架存在2个临时实体。
$ V# v) |+ j% M3 ?) F$ F  C
4 e8 p7 }5 V' S( E, e6 A9 S( M  q* A) t5 W( l$ p# J
(1)不使用运输工具。
' F; p7 ^' S. j* S9 z  ?第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?+ b" ~, }+ l5 c
第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);4 A( E& A& I1 q

9 ~. _$ i% }( h5 S5 m6 e' D  A9 g  T& v: h% h  F' A8 T
(2)使用运输工具。
  Q. s; {9 D! e第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);
4 W  z% T) N( q6 K: p+ m% x2 t) m, i" `' K6 |: F, M% f$ ~

4 L6 {0 e5 Q% M3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。
+ B5 ~. i/ @' L% p* f* t
$ a1 G% v: D9 a1 v) b

# L+ V& x* @( w案例2:2 z5 U7 ~% ^2 z! d" k% K) }
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。
8 U9 k. ~' ]" p0 x* X4 |7 D/ J# K下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。
# L$ @# C  L; m) {! j现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
作者: 李锋    时间: 2022-2-28 13:16
请问,不使用运输工具这种情况在哪里编写代码呢?




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