全球FlexSim系统仿真中文论坛

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

releaseitem命令简介

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-13 12:11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-13 12:25 编辑
7 s9 |4 n2 M, t& k) A( @2 T6 [+ D5 ^
, t6 c5 u* U/ }5 Jreleaseitem(obj flowitem [, num port ])1 U9 B; h/ q# [# E6 {! y
释放指定的临时实体。+ T6 ]7 u3 Q8 G" e1 ?
releaseitem命令仅用于以下两种情况;
; L3 a0 f0 w' r1 S1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。
8 D% O  I& z7 i( h8 }& E2.临时实体在任意固定实体之中,并被holditem命令控制。
( d4 b, s; F' g! b第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。
1 X; I! P: D% \4 g9 z本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.6 Z7 J0 g) ^( O7 b

# ], k4 m, ~& G2 A/ g7 I' Y' e+ ~( F
命令示范:4 E: P% O7 h, A" s1 H: Q
releaseitem(item);& f4 F/ _( `4 E* A6 n
releaseitem(rank(current,1),1);+ J/ N  A. i3 G
releaseitem(last(current),getitemtype(item));/ P7 j7 d6 f! ?; `+ r

$ x  d8 e; y4 M/ M实际使用中发现,如果要释放的临时实体不存在,程序将报错。8 k9 ]7 H# l( g# L: E0 }. P
使用该命令时需要注意,确保第一参数flowitem指向正确。
: b. T. n) `: j' b* d& [  ~6 W; U! p# k- g0 F/ f+ ^7 m

8 w: P( ]0 A4 ?, a! P案例1:" e1 g8 ^% X7 n! W6 R( J
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。* ]* @6 w, m0 z, x( Y
1.如果命令执行时货架中没有2个临时实体,程序将报错。) @0 l; f: ]  N2 I: R! _& ~! t% n  U8 g
6 M: Z% }, V! \
2.假设货架存在2个临时实体。( p5 k% E0 O, q! N* Y; N
9 z  Q% u# z  B+ b' K

& S. q/ Q4 Y& `' ^! H* y(1)不使用运输工具。
( ?2 _* U+ h0 ^: K第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?# i0 e7 {6 @- H. z1 y, d8 `  `* f
第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);
% A" f6 f# L6 N  b% T$ x# V) c1 R$ y" T2 X8 x8 j

4 P& T2 W3 O6 P0 l: y(2)使用运输工具。
: P; x" Q9 n3 _; F' S& R0 z2 M6 P第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);
6 E2 O! I4 T' n& p+ H4 h1 p( U1 Z
0 s4 W5 q* I0 F1 V8 l: U% l6 }6 G( I
3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。
1 K; {9 D0 m  u  s2 F  k( r# K, x- H2 y+ p0 T) x0 l' M( ^
# c8 N2 K! i* h, w$ V( G
案例2:
/ Z  d( f. @) m3 {0 v* U: v
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。" f/ W8 Y% B3 }% M1 e+ [5 G
下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。- E5 O, y* Q: T- Y/ ?4 H
现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
2#
李锋 发表于 2022-2-28 13:16:04 | 只看该作者
请问,不使用运输工具这种情况在哪里编写代码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-31 02:44 , Processed in 0.073575 second(s), 13 queries .

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

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