全球FlexSim系统仿真中文论坛

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

releaseitem命令简介

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-13 12:11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-13 12:25 编辑 ( ~7 z/ B+ A4 u5 R. K8 G3 y

$ j- R! N/ G: j+ j+ Freleaseitem(obj flowitem [, num port ])
# y" L2 @4 X. s6 u" G
释放指定的临时实体。2 H& P5 R4 u2 F0 d
releaseitem命令仅用于以下两种情况;
# ?$ C. M3 ^3 [" L' ~1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。4 L% D+ A; P4 K
2.临时实体在任意固定实体之中,并被holditem命令控制。
0 c# A6 h  E& a' t: s5 P, `3 {& ]第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。$ R+ C) e+ N0 Q5 `
本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.
* R2 l/ D* r1 z/ U. |- e+ T: R
命令示范:
' ~6 E) T0 L/ t6 A* C8 H& V
releaseitem(item);
! C/ B- b) i9 D0 X9 G# ~, Areleaseitem(rank(current,1),1);9 l, C/ \4 N; c8 ?4 e) e7 T
releaseitem(last(current),getitemtype(item));
4 Q  ?8 b. V8 ~% X3 @2 J  v. Y: ^! U+ N+ }# c5 o3 L* E& Q
实际使用中发现,如果要释放的临时实体不存在,程序将报错。1 O, h+ \" `8 L, w5 h& K) y1 d+ K0 o
使用该命令时需要注意,确保第一参数flowitem指向正确。
# m5 N8 B" b0 R5 P2 i; Z1 c; S, Q3 G5 y; u0 N' t5 p: c: Y

9 ^8 f/ T1 c6 q. Q0 o, C1 J# ]案例1:* b0 g' P, N3 s7 e. Q
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。6 B9 L* M5 M$ _2 [" Z( P
1.如果命令执行时货架中没有2个临时实体,程序将报错。
2 O( G2 f) K% ?
" q+ a) R+ Y* O. j4 B2.假设货架存在2个临时实体。0 K! b$ ?2 F3 O9 W

* I/ H4 J- o! c; |  H
9 E6 o" L; k$ g" n+ {) m$ u(1)不使用运输工具。  r6 _) L7 i6 r+ e
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?
  J4 u) x5 J4 H. }, [第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);
. P) [+ N8 m$ D2 }. ?3 Y* [; E2 b0 u: l  G2 W& U+ B- Q& }! B* k. ?

$ z- [5 R2 }/ k! l1 x+ z+ \(2)使用运输工具。
3 ^, f3 z3 L7 \3 h第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);
( C0 Y& h8 v% K: ?9 B( q6 X: P' {) ?, C! ^; V6 n
1 V' e8 r' f6 r* Z  O, q
3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。
3 {1 j# f% z. c. N3 @; {3 p; S4 V& ~9 X! B5 V8 U
6 o! a% r) I" a# g
案例2:
; S! d' q1 I: L0 y  e
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。
2 o- {6 W) W) v0 x) {6 K! J下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。
4 i* O) g$ z! K& j8 ]# @) x2 g1 O现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
2#
李锋 发表于 2022-2-28 13:16:04 | 只看该作者
请问,不使用运输工具这种情况在哪里编写代码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-9 00:09 , Processed in 0.074133 second(s), 13 queries .

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

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