全球FlexSim系统仿真中文论坛
标题:
releaseitem命令简介
[打印本页]
作者:
zorsite
时间:
2017-5-13 12:11
标题:
releaseitem命令简介
本帖最后由 zorsite 于 2017-5-13 12:25 编辑
- J2 A, x u: A
* L F- e4 s x( }
releaseitem(obj flowitem [, num port ])
! ~ g& z% ^; Q3 p, S
释放指定的临时实体。
8 ?/ _ a2 G; ?7 a, O
releaseitem命令仅用于以下两种情况;
& ~' u: i0 l8 s( g2 s, v
1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。
: ~ S1 h, s" u* V3 g9 t
2.临时实体在任意固定实体之中,并被holditem命令控制。
}1 y/ ~) ^ F/ F& [" O
第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。
! g; ^8 X2 {% o
本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.
* l1 z8 g# O6 L
# ]# C9 b9 j0 m* Z
命令示范:
' d O( k8 H# @% p7 \+ O& w
releaseitem(item);
, L! @/ F0 M% i5 p. |: E
releaseitem(rank(current,1),1);
/ }/ t+ v4 r% l& N! r
releaseitem(last(current),getitemtype(item));
D; j6 K/ M4 j0 }! f% S! _7 I
# `% E* P o( q* P9 }7 ]
实际使用中发现,如果要释放的临时实体不存在,程序将报错。
0 `" ]0 h+ L* E0 d. f* M
使用该命令时需要注意,确保第一参数flowitem指向正确。
+ h U) V4 Z% O2 E# p( i( T/ D) x$ |
) d$ L2 \. s b8 p0 `7 G
( E ^1 O. Z" v. X
案例1:
; x1 X5 @2 f7 D
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。
; X5 z- r# L& y2 S- p: X; G3 D Z/ A
1.如果命令执行时货架中没有2个临时实体,程序将报错。
5 S% Z" `" C8 {0 C- @4 ]* Y+ c
* Y" x' ?& Y. y( a+ Q
2.假设货架存在2个临时实体。
1 m' m8 {! @; j2 B ~7 v
+ R1 @6 M8 X8 ]6 ?$ K* Y F
9 k# i" S" u1 ~/ B8 z
(1)不使用运输工具。
& L4 v) W, V5 W0 v+ J0 H
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?
0 h6 m7 u0 A( h/ {- I$ K
第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);
) P2 x4 E% L$ S, y' T- I* R9 o, Q
9 j& S3 @+ {# Z- j( B0 K9 M$ p
; e, A6 a6 B+ k! V2 o# `0 A
(2)使用运输工具。
" Y5 F8 ]+ f( u
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);
+ T# o7 E( l1 r, a, C
% g- g* J( T. s# W9 S- r: V
* @9 L+ d; W/ [8 i" i
3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。
! N9 d3 d. s9 b. K2 _8 x0 O
4 f, i! v: ]6 F' i
* _% W* t. J9 X3 y, P
案例2:
1 i/ r( \! z( O5 X* {& l- N
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。
0 [5 G% ]2 o% m2 d' U7 U: q
下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。
/ y7 r! G& d0 h' G1 @
现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
作者:
李锋
时间:
2022-2-28 13:16
请问,不使用运输工具这种情况在哪里编写代码呢?
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3