全球FlexSim系统仿真中文论坛

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

releaseitem命令简介

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-13 12:11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-13 12:25 编辑
( Q, w- [9 F1 l/ p; J9 W  s0 b7 y$ x& y! h4 X
releaseitem(obj flowitem [, num port ])/ U' J  u* A, F. V
释放指定的临时实体。
3 d+ @' [1 i" V% Nreleaseitem命令仅用于以下两种情况;
  L1 ~% m$ F- I+ W+ M. v+ n1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。
; m9 {% G1 j: a6 @- e4 |2.临时实体在任意固定实体之中,并被holditem命令控制。8 r% d2 l' a4 y5 h# H; q$ [
第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。! j6 |- N. A& ]$ Z0 I# T
本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.& S3 k* }9 D5 }

6 h# K/ V9 |; I' F. H4 k
命令示范:4 c; q- I# I* d: f2 E( W
releaseitem(item);
$ _, K7 M& t4 N6 f; Preleaseitem(rank(current,1),1);
/ ?: b; O0 q9 creleaseitem(last(current),getitemtype(item));1 |# }7 m* A7 n5 r

) @. y1 Z: y3 U实际使用中发现,如果要释放的临时实体不存在,程序将报错。0 p% C# ^6 t4 P% L; Q" q% _& Z
使用该命令时需要注意,确保第一参数flowitem指向正确。
, C$ B1 k7 W, ?  G
, I8 s8 L4 j' J. u4 D' \( S

% Q5 T( }0 `9 q/ P案例1:
* B3 N  K1 W6 C- L
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。
# F6 j3 z/ h% y3 {4 i5 }3 ~! d1.如果命令执行时货架中没有2个临时实体,程序将报错。
1 H6 G5 N7 e! B* X! V
8 ^0 K% z: i# G* t# t# v7 T: o8 q2.假设货架存在2个临时实体。
4 k7 y, L. T, S, S; E4 D/ v  p9 p, f* u) D( m% L& g

3 c3 P  S+ k  |7 o" ~. K(1)不使用运输工具。8 F& x7 ]2 [9 u( E, _! F
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?. Q: t/ y$ e8 a$ G
第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);6 l' l8 P) u; [# T0 t6 ~' @2 |' m
, k4 f  R( y3 i3 X- D; _

  u! I3 }; R: b. M" |. D(2)使用运输工具。0 p8 f7 u" Y6 h3 J
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);
2 Q0 \' X# ^0 e  L& y0 E# o6 ]. T0 p1 t. K2 q

* Y) m9 j" S2 h* k; _8 E; \3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。
5 W# L, W8 i: g6 i6 p% U
4 T9 n  V+ r1 W# y0 K- B2 y  U
# m  Z& C9 l2 a  r  k& A
案例2:
/ [8 o  R" x8 Q% {9 |9 Y# N/ X7 _8 p
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。5 I1 j! s# U, o. T/ a9 d0 N
下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。
4 E  x' m1 i- Z0 U; Q现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
2#
李锋 发表于 2022-2-28 13:16:04 | 只看该作者
请问,不使用运输工具这种情况在哪里编写代码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-8 11:50 , Processed in 0.085299 second(s), 13 queries .

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

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