全球FlexSim系统仿真中文论坛

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

releaseitem命令简介

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-13 12:11:39 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-13 12:25 编辑
) O  U/ e; I- k4 R6 `" ^7 D1 @
" v3 T7 ?$ V* g2 a% ]" F0 j. ereleaseitem(obj flowitem [, num port ])
' d# T. O3 p! I
释放指定的临时实体。7 f( p, j" S/ p. ]8 L
releaseitem命令仅用于以下两种情况;6 E6 u) Z, x9 k- m
1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。
% M, X: F- h+ l8 _. b8 E2.临时实体在任意固定实体之中,并被holditem命令控制。
3 N9 M; a, M8 W! u2 g7 L第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。9 F  I/ n% X0 P
本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0." f, [- f( T% ~% U! F1 W
4 L& \" X( J. ]$ f; W
命令示范:
0 U" E: W0 s2 z
releaseitem(item);4 Z6 V) B1 Z# x2 w6 }" Y
releaseitem(rank(current,1),1);/ l6 R# p$ M- ~, q$ g# B7 H
releaseitem(last(current),getitemtype(item));( [  J' Q$ K) c; M/ T( W7 I

7 K" g, P. T) `实际使用中发现,如果要释放的临时实体不存在,程序将报错。! q& }8 K7 T% s5 G
使用该命令时需要注意,确保第一参数flowitem指向正确。
4 E* K2 I* E" B$ \" d" _. a) l7 o$ \  l& R( b4 i4 p

2 H: [' G, U# ]3 A  B" t案例1:
! G/ ?$ [, ]; S4 f& q+ w, j- Q& ?
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。0 A3 a  b1 L, f$ j) P) H
1.如果命令执行时货架中没有2个临时实体,程序将报错。
; @" v: n- M. }) `% X" s5 ~8 T% X$ j* E: r, ?  ?! J$ e
2.假设货架存在2个临时实体。
% P3 ^7 U: ^4 h' m9 M8 u1 R8 ~; T: G' w* ]
7 u# r5 s3 b6 C1 ^4 p1 }( [. z
(1)不使用运输工具。/ m2 c$ f1 [2 n) `) o2 z! m1 V
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?3 L/ G6 D( h- ~4 p. B* I/ {  {
第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);
7 s8 k, X4 L' J# ]. m' s5 ?1 L$ Z% V7 t

2 ]5 T$ [8 C; }+ m2 e(2)使用运输工具。
9 w$ r% c  e+ V+ w1 Y) _1 L. h% T第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);0 U' H* W/ A# U( ?4 r) @

1 L* R/ l" d3 t7 D5 p0 H: u0 Z8 i& G$ a3 {6 H6 c2 y5 ?
3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。
3 @+ ]3 u0 t" T8 C% D5 L: x/ `( `5 |3 x4 P  L+ x) u: C
- o' Q7 \; a) J  P+ o) ?% j2 Z
案例2:
. ]2 H! s4 H+ I# o
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。3 W, _) o* p( v
下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。3 F9 v9 }2 N$ I; z# h
现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
2#
李锋 发表于 2022-2-28 13:16:04 | 只看该作者
请问,不使用运输工具这种情况在哪里编写代码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-28 19:39 , Processed in 0.070163 second(s), 14 queries .

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

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