全球FlexSim系统仿真中文论坛

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

releaseitem命令简介

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-13 12:11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-13 12:25 编辑 1 G9 w% M3 T) O2 t1 o. C: J
" a. \) U; U0 E3 n. j& P
releaseitem(obj flowitem [, num port ])
: j9 B6 L/ p0 S& O
释放指定的临时实体。- x6 X# K  q& i# k3 ?
releaseitem命令仅用于以下两种情况;, m. c' N% }9 N5 n% E
1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。, U) e* \# N" I: z
2.临时实体在任意固定实体之中,并被holditem命令控制。& L/ Q/ M) W3 g5 ^5 e. i
第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。
$ u- m- O5 x5 n6 b0 M本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.
5 i' A/ d' x- @' z* e7 g% t( x. Q6 ]. K5 r, F7 T
命令示范:; @1 u$ D+ h5 e
releaseitem(item);6 i+ n2 _$ |. G* u. ~
releaseitem(rank(current,1),1);+ S) E3 R  M/ u: Q% @
releaseitem(last(current),getitemtype(item));
; \' a% g* ~  B6 s% B
$ X6 Y) t+ d+ c6 S实际使用中发现,如果要释放的临时实体不存在,程序将报错。6 y( a- x9 K: @/ H6 U$ j. V
使用该命令时需要注意,确保第一参数flowitem指向正确。4 ~# |9 Y/ a, Z5 Y, O/ I" ]+ |

: i8 W3 s4 ]) Q9 D* Z0 x
. z, M9 l- K% y2 K* T" _
案例1:& C6 O2 `3 ]& }- i' x; u. a
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。
# V( v& K1 |' u1.如果命令执行时货架中没有2个临时实体,程序将报错。8 [, Z7 C6 ]  ]% D2 Z$ {

( a8 y. y& K2 T; D" f4 I2.假设货架存在2个临时实体。
8 b: G; E1 L, y8 ]) o; {9 K+ y5 \& A3 ?; J# Z% U" x! S2 q# G
6 Y, V: M3 m& F1 J; b9 Y8 I$ T( B9 ]
(1)不使用运输工具。
% x( d0 W  m  I0 ~3 `; j第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?4 p) d  B* T4 H9 u3 `7 B( b. F
第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);
3 W7 }8 d; n8 A9 t( o& p0 z$ `
) S* n! c5 c5 z5 b
# v$ G+ k; Y5 F* Q% r9 O( R5 ~(2)使用运输工具。
" @, v4 @$ a" E, L6 ^& g% ^. @. d9 h第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);+ R0 T5 {8 b2 _) {% z

2 g' I6 R2 w; I+ R2 O: U0 v
) P8 i  R& Q4 w4 X3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。
3 k' I' n! x6 ]2 r/ m! ]* i: f$ v" e# b: Z; m2 W$ [- G

: G2 b( U  E. Z. Z案例2:
& i& i8 f# I1 Y" @4 Q! B3 z
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。
5 Q& T+ _( E4 j下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。
  _( R- b1 C. O( K7 O现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
2#
李锋 发表于 2022-2-28 13:16:04 | 只看该作者
请问,不使用运输工具这种情况在哪里编写代码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-7 08:19 , Processed in 0.072036 second(s), 13 queries .

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

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