全球FlexSim系统仿真中文论坛

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

releaseitem命令简介

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-13 12:11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-13 12:25 编辑
- @! q' v: Z- u/ ]7 B. ~+ v/ i1 g$ ~
releaseitem(obj flowitem [, num port ])
* m, ], \3 x$ E) I2 p% ^( R
释放指定的临时实体。& [3 w4 D+ d" g" K
releaseitem命令仅用于以下两种情况;
; V/ T' Q& J6 W0 ^+ J5 A1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。: ~* d8 E, b+ L& n
2.临时实体在任意固定实体之中,并被holditem命令控制。
  Z1 ]% L; v8 }第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。! T5 f% n" g- q# K: x8 T
本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.
  Q! r1 \9 ~& [
( Q* x& E( W* E0 M0 U* `# z
命令示范:3 e# w. e2 H) x
releaseitem(item);; Y+ c% Q; k6 C2 n" l2 V; G
releaseitem(rank(current,1),1);
1 h* D7 @3 G" Z5 qreleaseitem(last(current),getitemtype(item));' w2 k. c+ y& j5 D, K7 }$ Z
  G& R) S# `! f) [, P( J" i6 m# A# T: V# H
实际使用中发现,如果要释放的临时实体不存在,程序将报错。( {( a1 H& n4 g5 j
使用该命令时需要注意,确保第一参数flowitem指向正确。
- u% ?. z# [/ \) _& c5 @8 o7 O
( ~: J0 }2 L# ~1 q2 q5 j# b/ ?3 h

* i+ z* Y; Z1 L3 z; m5 L案例1:# z8 G9 _, d, [1 S+ y0 u6 u
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。
1 ]7 v; g% c* x: z1.如果命令执行时货架中没有2个临时实体,程序将报错。7 R, T' |% x& T& V
8 Q; w- D0 B7 v* K! l9 g  X9 M% @; }
2.假设货架存在2个临时实体。; f, A- P( V' Y
- [& \' d. Q3 |, o
$ F# N' S5 v; M
(1)不使用运输工具。
; t+ w, x# D: v% X$ i第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?
# M6 `+ D3 O4 ~4 C8 [3 w' q8 U第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);
; ]% e$ F3 A1 o: v' p
5 \+ K7 w6 O7 _7 j1 |
& U, ~2 ]/ t' w0 r# W9 p  q1 X! K(2)使用运输工具。6 u& c$ |% i; L4 P" V
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);4 Q) [  Z5 k* ?

4 h+ {5 g- q7 Q" T1 w
: X& |' D7 |3 `0 [; Y& `* Z1 c3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。
8 d0 ?! M  B1 D% ?
: T, Y, P' q; ~

: p7 l$ J+ ~+ k  ^% _案例2:
1 u5 ^% x, X6 f4 \7 D, l
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。
1 S4 E. A3 i5 Q, [: z下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。/ c; k: c! \( T) |
现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
2#
李锋 发表于 2022-2-28 13:16:04 | 只看该作者
请问,不使用运输工具这种情况在哪里编写代码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-29 02:01 , Processed in 0.057295 second(s), 13 queries .

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

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