全球FlexSim系统仿真中文论坛

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

releaseitem命令简介

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-13 12:11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-13 12:25 编辑
( ^" K' r7 _! r; k
+ @% ~( k' O  l, [! Hreleaseitem(obj flowitem [, num port ])
( M2 a8 l! w- h: Q9 S+ \- J# l8 u
释放指定的临时实体。/ U- e& M( o5 D, C: T5 o
releaseitem命令仅用于以下两种情况;- g6 j1 ?8 e* o6 Y$ X. ]. y
1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。
  c4 H- s+ ?+ ]% w' ]' x  S2.临时实体在任意固定实体之中,并被holditem命令控制。
* h/ X9 ^. `) I" O% B, S第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。
1 J( c/ W# l' D本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.
) S* F$ `7 m- I' |& Q  ?7 T, o: e
命令示范:
, v2 ]7 H* ~. S
releaseitem(item);. f: m; s7 {2 b$ V4 ~
releaseitem(rank(current,1),1);
3 X2 \) `1 t3 i# n9 W; z5 hreleaseitem(last(current),getitemtype(item));# C7 h0 t; q- P# i9 R" n+ e6 F7 V

  i2 Q( s- m9 |" X, x, n实际使用中发现,如果要释放的临时实体不存在,程序将报错。. w, i8 y- M% m! ?- X  a1 L
使用该命令时需要注意,确保第一参数flowitem指向正确。
/ M/ u/ |1 i3 }/ X+ `, j# f
5 P- e7 F/ \9 U) B& u+ j

% w; K% U" c& r1 ?案例1:, V  h$ h! @$ i% @$ W
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。! K- f# |, m7 X/ ^
1.如果命令执行时货架中没有2个临时实体,程序将报错。8 e- g" p# }$ B. H7 T) j# [8 ?
5 b" T% m! \+ g5 K
2.假设货架存在2个临时实体。
/ i9 Q- l) `  Q5 E  B4 S2 m$ S, C5 E- G# [$ A! E$ ]  L& Z
% o2 Q' R* k. B7 e' A: u& n
(1)不使用运输工具。
& D) \+ i6 X2 |9 ~) b第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?
* T4 E" Z; b- f+ T; [9 a$ m/ W第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);
" I4 E. ~: b7 E/ n
0 A& a" k7 _* R& F
- ^" _3 ?; q& y! Y% n(2)使用运输工具。
, R( w, l5 R4 W第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);* e' @0 K/ a7 B: R
; X" @4 G3 P3 r9 l. H

  R0 z: F; k5 y( w0 G3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。
( O- E$ q" B5 }! k2 \3 }1 ]! t! }: L! L. W

1 ?* O/ \+ ]! o& r- Y4 [案例2:
4 S% Z0 z. z6 j
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。
: m# Q8 H3 N) e3 y下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。1 T6 s( E2 V& ]. c. _7 [
现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
2#
李锋 发表于 2022-2-28 13:16:04 | 只看该作者
请问,不使用运输工具这种情况在哪里编写代码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-20 08:21 , Processed in 0.057373 second(s), 13 queries .

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

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