全球FlexSim系统仿真中文论坛

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

作者: zorsite    时间: 2017-5-13 12:11
标题: releaseitem命令简介
本帖最后由 zorsite 于 2017-5-13 12:25 编辑 $ W' Z  a0 \+ d3 l# f# |

5 W' N1 K7 v& e9 l( s( [$ M9 i+ U+ Oreleaseitem(obj flowitem [, num port ])5 J7 W- Y, j2 [4 a6 K5 U; t
释放指定的临时实体。
& N1 s+ q" S: `) Z; _' Jreleaseitem命令仅用于以下两种情况;
4 s  ^' c) d# G3 n0 u1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。/ J2 U8 C$ A1 a& b
2.临时实体在任意固定实体之中,并被holditem命令控制。" B) U. I! F* y- ^0 G
第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。' s- m" Q6 y, [$ O/ X
本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.* n: q0 u$ S) o2 j1 S

# e8 R; t" {6 I/ S& r/ d
命令示范:
: ?$ {5 _2 ?3 C3 h( F4 L: H6 W
releaseitem(item);
/ C9 X. |. ^9 B: Nreleaseitem(rank(current,1),1);
" \5 R- V! }# |/ y' {releaseitem(last(current),getitemtype(item));
- Z/ B5 P, x* h. d1 t" B4 {; z. M/ g  |
实际使用中发现,如果要释放的临时实体不存在,程序将报错。
/ d5 m+ M: `" U" t8 t* R使用该命令时需要注意,确保第一参数flowitem指向正确。9 O  f' v- {+ J+ Z: h
' |# y0 ]+ @3 g( B! }$ J1 G
) w8 h% S! e' r
案例1:) n& {6 C. M8 |  c# \/ Q
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。
) z2 i- M* _3 C: @1 s, q8 A1.如果命令执行时货架中没有2个临时实体,程序将报错。
8 Q- a  z! J5 m
% [0 l! r& Y) `* R6 W4 P# V2.假设货架存在2个临时实体。
# s7 X6 Y% G: j+ [+ ^' E- z* O" D. f1 T* U0 k) @: U

5 Q' b% g4 \7 d5 i(1)不使用运输工具。
% g/ D, q8 r; w第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?
. U1 i  W& r" a  W3 k% J% l第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);
0 ~- V+ A3 w+ K# L  |* M5 J- a8 y3 [  A% H2 I
- X1 w( O' h9 U0 }; W; |# W
(2)使用运输工具。
( }* S0 f* d3 V/ ?5 R第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);3 d6 a$ Z7 x) O& p0 H
# C6 l% h: P: |0 v( v4 C. ?
8 p; n9 [; \9 U
3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。0 n6 X" G2 |' ~$ n4 k

5 a4 L  X/ D+ M9 @- L4 \) ]8 P/ P; I2 ]
2 R( w$ \8 ^" X& J1 g9 T
案例2:
0 t0 X3 J$ n: l) J4 `4 q8 O  @
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。1 X: I; g; f+ w8 F/ `! q# L) @
下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。. f( `4 k7 I3 Y. y: r
现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
作者: 李锋    时间: 2022-2-28 13:16
请问,不使用运输工具这种情况在哪里编写代码呢?




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