全球FlexSim系统仿真中文论坛

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

releaseitem命令简介

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-13 12:11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-13 12:25 编辑
) N: }7 N0 M2 O9 z5 F" s6 ?  e2 c. j: E6 i$ c
releaseitem(obj flowitem [, num port ])
' x+ k, s+ }9 S" E+ Y7 h. F
释放指定的临时实体。5 B$ d1 _! R9 p4 F
releaseitem命令仅用于以下两种情况;
, H' y: T2 [8 y- G. |: G& Z1 B1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。
! k* F+ S" ~0 y3 H7 e2.临时实体在任意固定实体之中,并被holditem命令控制。
% x  {; O) E  X0 L8 b1 [4 q% f0 D第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。
5 S. j# ?# Q( C本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.
6 n$ r# Q" ~# I2 e2 a& }0 G( v2 `/ d8 p' @' w7 K! \' e
命令示范:
) [2 X6 }" C! B" R( B* e8 K" {9 `
releaseitem(item);
  ?5 {1 d" ^7 L6 }; C2 {) Ireleaseitem(rank(current,1),1);
) m5 y5 ]: x! K7 Breleaseitem(last(current),getitemtype(item));
9 r& Q2 D: H% y" `; ~* L1 M4 ], C
实际使用中发现,如果要释放的临时实体不存在,程序将报错。
+ [6 n, b4 G4 N, W使用该命令时需要注意,确保第一参数flowitem指向正确。  o' A9 k. W% f" M: _" V5 ?
# F& @( m3 @; Q6 p5 b9 Y, l

8 t6 H& R1 ]+ n) z案例1:8 W5 a+ P6 C: o4 ?  {+ b
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。
# o& ~. `7 g/ q! `! z1.如果命令执行时货架中没有2个临时实体,程序将报错。! K6 K6 R  m: _* K: U7 B. ^
0 U5 n( r' u. t, Z0 t
2.假设货架存在2个临时实体。/ [' m. i  Y$ f: Y. }

3 X, {0 _. i4 N8 B2 a% c# X
, j. F: h0 ]' S: ^; M(1)不使用运输工具。
+ O' [' A3 y, O第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?3 T7 b3 o4 g  ?
第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);" [. e% h1 J2 B5 _% o
2 |% r, s9 M, l! b: q
7 x9 o" D; ]6 H0 P1 J
(2)使用运输工具。
3 W0 p6 b- G3 p, Q第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);
- i0 B1 |+ @/ K/ u: k) i) {0 i7 r' w& B+ ]! N1 D9 A+ P) s' w& f) l
, m3 Y7 ^% |2 g, R3 L/ I1 c1 p
3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。% ?% ]: f& {" O5 P7 F% E  Z

9 W4 N' [, X: G' u% |' ]

  @, i% `5 i4 l8 {  t案例2:
, W* h" L( U8 O+ t/ w* }& P
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。
$ f- i1 q1 ^7 x5 H4 C下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。
$ z" u) k* h4 W: E7 l4 k! I4 @现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
2#
李锋 发表于 2022-2-28 13:16:04 | 只看该作者
请问,不使用运输工具这种情况在哪里编写代码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-16 02:48 , Processed in 0.075812 second(s), 13 queries .

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

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