全球FlexSim系统仿真中文论坛

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

releaseitem命令简介

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-13 12:11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-13 12:25 编辑   a; {; L8 Q! O$ b: v

3 B3 C" b( b, Ureleaseitem(obj flowitem [, num port ])- N7 ?, b( `9 m9 d) A
释放指定的临时实体。+ V8 ?6 e' e& `9 _
releaseitem命令仅用于以下两种情况;
( ?* l. \/ X) o& y  Y( f1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。4 F0 }' I- S$ p1 D  e7 Y8 Y
2.临时实体在任意固定实体之中,并被holditem命令控制。
$ g0 H  l$ f! s! }+ B; Z. i8 T第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。
0 e% [5 _4 |9 c+ ?本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.
4 a% p9 G/ Q$ F2 ^- Z- p
9 e6 I9 k7 f: N' d0 k% R4 l- q5 o
命令示范:
7 r) Z6 G7 d! i5 N3 k! ?  G: _
releaseitem(item);
% _1 _# ?1 d5 g6 |- `1 v- ?releaseitem(rank(current,1),1);1 z: L/ u7 |* a) y
releaseitem(last(current),getitemtype(item));
4 x7 [( O/ ^6 p# [" W' p) z
8 f# R5 ]$ R$ J; f实际使用中发现,如果要释放的临时实体不存在,程序将报错。/ ^, P# h  a2 G, u$ k) K
使用该命令时需要注意,确保第一参数flowitem指向正确。/ u+ M; R( H, j0 J7 d. p3 y# H  x

+ S! x9 _$ [$ u- G. I1 |/ [
/ F5 |$ T$ V* @% O8 J# s" W
案例1:$ x$ j( J: e( H2 T( j# d
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。5 ?; i& \; {( p! v% P0 `
1.如果命令执行时货架中没有2个临时实体,程序将报错。8 P& j. y( |8 D1 a

# y; J- m& J$ ^- Y& q( ~1 F2 x2.假设货架存在2个临时实体。9 ^8 }0 h( _4 Z

( n+ ~0 ~3 J( G# A
) ]6 I  z# A. s8 z6 a  s(1)不使用运输工具。! y/ j! |( k; y' E( h; L3 J
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?
: Q; S1 J5 u# R; p: d) h第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);
5 I2 ^* ~1 V5 d* y2 ~1 |) v2 t" s
6 y! {0 j: q8 D& b& d+ w0 R4 T4 u0 b4 x! |; Z; S, ?( o9 t
(2)使用运输工具。! x* p  F8 [& L( x
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);' ?! Z' O% C3 N. X" Y4 ~( w* Z
& U* t- D* p7 \" {

. a- @# n0 P4 n  w8 {8 _3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。8 P/ M6 `$ p$ Z

1 G! L/ j/ k+ w5 T/ y8 [
) P$ _$ ^) o6 Q+ o
案例2:, T) i( K6 R, _& s3 p$ B( @
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。7 u% U' p$ w9 x8 F0 b
下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。
* O; |' i0 I/ ^6 w; ~现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
2#
李锋 发表于 2022-2-28 13:16:04 | 只看该作者
请问,不使用运输工具这种情况在哪里编写代码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-28 19:01 , Processed in 0.061609 second(s), 13 queries .

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

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