全球FlexSim系统仿真中文论坛

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

releaseitem命令简介

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-13 12:11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-13 12:25 编辑
8 U! p5 D8 L' X; q3 v+ [/ U
# E" X5 V, B* |+ O2 }& Preleaseitem(obj flowitem [, num port ])& y. Z- M- T; L$ G+ D+ L
释放指定的临时实体。& y: ]. r+ s# L6 d: D
releaseitem命令仅用于以下两种情况;
$ `1 B9 v+ o- |( Z1 V1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。
* `5 M. e* l: E% U8 {9 n7 O7 V( P) y2.临时实体在任意固定实体之中,并被holditem命令控制。
% v  `3 V1 N5 w/ B. ~, b第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。
2 U3 y9 j. b0 U2 n本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.
: n) Y; K! z' n* u  a2 x/ @/ u
" ]( t; ?. \& r4 }/ a1 F+ O8 Q' a
命令示范:2 v& P% `& E4 P7 m
releaseitem(item);6 g% S! r# o! R4 s
releaseitem(rank(current,1),1);6 s% ?7 z# W4 |
releaseitem(last(current),getitemtype(item));
% f8 N* Q( E# E- W  F) I: @- I3 k8 M
/ S1 {, ?2 U; F/ s  W' m% y实际使用中发现,如果要释放的临时实体不存在,程序将报错。
+ u+ a* u4 J+ @% |" Z% l$ a1 `/ z使用该命令时需要注意,确保第一参数flowitem指向正确。
4 u9 o) s! d- i! H& Z. x
. X1 l* H; D, H" K  V" x

) V% \3 s6 k; w0 {案例1:% b$ y  l3 I8 N2 z4 ~
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。
" T2 w) Q/ H4 x/ C) @- a1.如果命令执行时货架中没有2个临时实体,程序将报错。8 I9 P. G4 O" Y" I3 s. u% I4 h

3 V0 G7 U. B1 q6 b/ ^9 L' v2.假设货架存在2个临时实体。% \0 G, C) F2 w0 B& i

$ r$ v+ J' s% @$ B% h
/ Y" k  y7 I! A; |; w  u(1)不使用运输工具。
5 d; H3 D4 v/ T第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?
8 Y& I0 u, [8 \- L$ J2 x) F第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);+ V2 [% ]4 ^! V
6 p2 ^2 t! p9 M7 p; V( _- h; Q0 G& O4 v

7 p7 E1 T+ O$ ~( F(2)使用运输工具。0 P- Z2 c% x3 O9 c* L) S, u* l+ Z$ _. g
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);7 i2 s* g9 ^( [& p- i/ p0 b
6 @$ K  @' t  W1 o

& S  F9 ~# ?/ @3 Y3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。
$ Y9 V4 k* S$ e" ^; H5 K& |
9 |7 t  ]& s& T# }% L
# U2 u/ y* ^+ a' J4 Q% j
案例2:
" N& {) R* I5 z
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。
; _" _* z- W4 S3 ?4 m1 ^- d下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。5 V. C, d; Z$ a8 a; v9 }1 U
现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
2#
李锋 发表于 2022-2-28 13:16:04 | 只看该作者
请问,不使用运输工具这种情况在哪里编写代码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-6-2 01:02 , Processed in 0.066293 second(s), 14 queries .

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

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