全球FlexSim系统仿真中文论坛

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

releaseitem命令简介

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-13 12:11:39 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-13 12:25 编辑 3 d- a% D* [4 f! L

2 W/ c4 G, f: Dreleaseitem(obj flowitem [, num port ])) r4 |/ @& T3 ?+ M/ O2 i# F8 f
释放指定的临时实体。
7 Z3 D: K3 U8 ^8 ireleaseitem命令仅用于以下两种情况;  F/ |4 V) X% l5 G" ~, E$ k
1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。
! y" {' g( T  q. y) w$ z2.临时实体在任意固定实体之中,并被holditem命令控制。
' o7 {- a; l  L第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。
4 k5 L  k; V2 M0 _* O8 D本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.# F. D) H; V' U; Y0 A. O: D/ M/ w

! s9 S4 [5 k6 ]
命令示范:$ t: s. B$ b1 `- l: J' p
releaseitem(item);
* z! h* v( T) Q  }releaseitem(rank(current,1),1);, _0 g" a( T7 x1 `6 ~
releaseitem(last(current),getitemtype(item));/ J$ D; U. A% z& d9 ^7 H& \+ B

3 n  [$ l# b  Y- }' g* C实际使用中发现,如果要释放的临时实体不存在,程序将报错。. y- c& M) \# e2 @3 O% I4 `
使用该命令时需要注意,确保第一参数flowitem指向正确。
! y: O1 U* U* v, g4 t# j- Z5 @  B
. C* x9 R# e, v" z& Y  h+ d

1 ?+ {1 D6 j, Y2 K/ O2 O8 i! P案例1:! r$ P- w( }* V/ N* k
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。
( P0 Y0 _  I( u1 d1.如果命令执行时货架中没有2个临时实体,程序将报错。+ s/ ~2 y  l- X4 a: u
/ ?2 v; N& J% Y8 O! R
2.假设货架存在2个临时实体。
  {/ u' @# s; n! i( t% k' T
/ _/ @( ^0 y" [+ Z2 b0 w. F# j6 P4 V* ~0 W5 K! }
(1)不使用运输工具。$ m8 {; F/ R' F9 L" C
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?+ L) q4 `* R, c& }
第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);' g3 J# o# Z8 L6 I
& e0 u9 R, q6 T4 B$ E8 U+ L
0 c- h, B2 L  F
(2)使用运输工具。
) E. y$ E$ |% m. p6 g+ P" x3 r第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);& L* X: V( j0 B

2 J# C; i# E1 i2 L0 n% P6 c5 C3 j/ G
3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。( q: c5 t! P7 H
" Q+ {" k7 q, k% H& C3 {
! p  y% i5 N+ [% ~( ]0 p! J$ @8 o7 k
案例2:
# j- ]2 a$ C+ h1 N9 ?/ j
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。
# j; v& N! D' K下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。% c5 u& z# M5 q2 l
现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
2#
李锋 发表于 2022-2-28 13:16:04 | 只看该作者
请问,不使用运输工具这种情况在哪里编写代码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-7 21:41 , Processed in 0.064336 second(s), 14 queries .

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

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