全球FlexSim系统仿真中文论坛

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

releaseitem命令简介

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-13 12:11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-13 12:25 编辑   G) T, o9 j9 Q
0 Y0 S( T2 Z& \  N- U6 x; o
releaseitem(obj flowitem [, num port ])
( f" \* y, M# v
释放指定的临时实体。/ V+ m' J8 @! a8 ^
releaseitem命令仅用于以下两种情况;
+ t" f8 j$ h& Y' B1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。
: Z: }' n+ i: c, ]+ Z4 E, Z2.临时实体在任意固定实体之中,并被holditem命令控制。
# z$ r: B6 H! U第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。
' |( f% l+ W& ~" P- k本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.2 V+ u7 w5 n: T: B4 N

% R: S/ R6 O: }, A& C
命令示范:. |" ?- {# Z# T
releaseitem(item);
5 s* s1 E$ \* p; W# M8 m& Breleaseitem(rank(current,1),1);) A% F% W/ \& Y1 [9 L) _
releaseitem(last(current),getitemtype(item));
; Z- G  C: F& R/ e, t  W$ m
/ M; [6 ^* t; p9 d* P7 Q3 m* r实际使用中发现,如果要释放的临时实体不存在,程序将报错。' F4 O! v" b! X3 u2 e" h
使用该命令时需要注意,确保第一参数flowitem指向正确。6 e; @+ P# L$ u- e- l3 I  ?" C) F

9 c+ F$ |$ b& g; X# R4 H
  [0 h0 P; n/ l4 [( }# @
案例1:3 |) o6 J% y! T/ N$ ^3 A  L
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。
: U5 w" ^, W2 l. S1.如果命令执行时货架中没有2个临时实体,程序将报错。+ b$ }3 S$ S3 y* c

5 \! y7 C3 {1 P' i) q2.假设货架存在2个临时实体。
0 S. Z8 T# U9 n( Z2 r  H  p2 B  u, Y* n: z3 z$ M3 z
' _' z* O, X7 }0 a/ [9 w! H
(1)不使用运输工具。
2 h7 O# T& o! L$ a3 B第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?& y2 L- _1 Z* _2 `- D5 j
第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);; Z4 w1 `$ E3 B& j  e$ f

; E2 a. q* n. u5 ]/ c3 [$ S4 g2 [  F0 M! N+ J( x
(2)使用运输工具。
0 _" }* O) W4 B8 `' i: d- E( D第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);
3 l9 D) H0 R# A& u. Y
4 K8 J8 G/ n+ |# f3 `
* V. `& t" y- f2 q, r/ S. ?3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。
( @0 @3 M: l* c3 ]4 w; b& z+ C7 S' ?9 V; b- h, J) a5 m6 J  A. Y
& N" Z( P4 s% [  r9 {
案例2:
$ e$ m2 c: r2 K& W4 U7 ^4 Y
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。- O/ X. \3 h, Z; }: u
下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。2 ]/ ]( ?( V5 \; w! o& I; E# S3 {/ F
现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
2#
李锋 发表于 2022-2-28 13:16:04 | 只看该作者
请问,不使用运输工具这种情况在哪里编写代码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-31 17:10 , Processed in 0.077984 second(s), 14 queries .

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

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