全球FlexSim系统仿真中文论坛

搜索
查看: 2820|回复: 1
打印 上一主题 下一主题

releaseitem命令简介

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-13 12:11:39 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-13 12:25 编辑 6 _( G1 S! n& D; v, k$ i' }
7 L) C7 T- J/ C( A9 B, t
releaseitem(obj flowitem [, num port ])% S5 H* ~( T8 r- x8 @
释放指定的临时实体。, V9 s+ n* S) x2 U9 ?  z: A: f# p% N
releaseitem命令仅用于以下两种情况;) |1 H! h+ Z/ p6 I
1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。3 v; I. g, {- \9 j0 P( b8 v
2.临时实体在任意固定实体之中,并被holditem命令控制。
# p1 V( N: m" |! N& L1 U! H0 Q第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。' I; l! y# V8 N! I* C6 M/ F
本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.. O- e) c9 F6 x) G' U/ e
: y& c  B! H6 I) t0 |1 H8 n6 u
命令示范:$ h! o! H5 k6 d7 j/ F, s3 @$ k
releaseitem(item);7 S; \( Y: }3 C# T( s* O5 r
releaseitem(rank(current,1),1);! o* G  a5 G) I, c* ]$ s- ?; U
releaseitem(last(current),getitemtype(item));- _! Z! _7 D3 H" V

# ^: I! [7 R% f5 F; u2 p实际使用中发现,如果要释放的临时实体不存在,程序将报错。' \9 a% A4 S* G
使用该命令时需要注意,确保第一参数flowitem指向正确。* Y+ H$ \& S( Z7 `

* q# c. L9 s6 f% S5 i
8 H* V- |1 n6 V8 h+ O  g2 `
案例1:  f" C% ^- m  B- N# y
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。
5 _) Z- C& a" ^( R& p6 ?4 j) g1.如果命令执行时货架中没有2个临时实体,程序将报错。3 \9 D; P' q3 W  C6 M

7 A1 }( q( C8 @7 ?+ w5 F( h2.假设货架存在2个临时实体。
" ]$ s. [$ @( S. N+ W! s- a# i$ p4 m" m4 t2 P/ o/ w2 f

. J8 P/ H- R: x% ~0 T(1)不使用运输工具。
, S/ z8 U% p4 ?  A第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?
  m7 i6 E9 `, u第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);
; z) d0 [7 M0 P8 Z& m6 T4 U2 I! b+ n0 G' ]
- r; e- A9 j! L
(2)使用运输工具。) O& }5 V* }- r! g3 L7 x( j
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);
9 A$ N8 G5 x1 O
' ^, {/ y. ]# H( Z4 G
' R& C. }% _3 O3 J1 t6 `3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。
+ x, K, E4 W  ~7 B, ?" w* n& b  z3 m- r0 B
$ K4 R9 H7 ^' [5 Q* @" _
案例2:
) R, U: M, Q  [' c" `+ y
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。
2 V) I1 g5 ~& v  s/ C3 T( t下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。% d* n" D% j; c2 b
现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2024-5-20 07:38 , Processed in 0.062231 second(s), 13 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表