全球FlexSim系统仿真中文论坛

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

releaseitem命令简介

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-13 12:11:39 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-13 12:25 编辑 $ n7 B: M4 p3 q. C* R
" C( \) _# H# }1 V
releaseitem(obj flowitem [, num port ])
% p: L3 F3 q! c, y! S  \
释放指定的临时实体。
  K# C" w% n( I5 j( zreleaseitem命令仅用于以下两种情况;! g( _. g2 p% z2 ~" v
1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。. k; L7 R% l( X. _# w
2.临时实体在任意固定实体之中,并被holditem命令控制。9 e& m0 {8 k5 P' I* W7 P5 N; i8 L
第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。% H- X( c& w  F) a- q+ b
本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.' K7 |# e* L  q) H; W/ k
* r( ~6 ^0 i8 E) {/ y
命令示范:4 B, ^$ q! z7 y; O$ x
releaseitem(item);
" J, W+ M9 `% g2 ~5 M/ L% s3 Ureleaseitem(rank(current,1),1);
9 z) `0 L4 L. r0 x0 I  Dreleaseitem(last(current),getitemtype(item));8 [7 \5 _9 ]& s% I7 |4 Y
2 _' o+ o. L7 l7 {! a
实际使用中发现,如果要释放的临时实体不存在,程序将报错。6 j4 S  Z9 k2 l
使用该命令时需要注意,确保第一参数flowitem指向正确。& ?$ b% u+ z" ~8 {, C+ T

* j, w* I" s/ M* L
5 \' u% ]/ D) N
案例1:) y! [& q; K+ Q1 ?
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。
7 c1 a. o  j9 R3 J9 L- w$ B1.如果命令执行时货架中没有2个临时实体,程序将报错。
4 d" W! E, D  e- Q: k0 }# w
  W* Q0 N5 g) W# Z* v2.假设货架存在2个临时实体。
. u6 Y; E! Z/ c$ R3 P' v0 h
0 M) w  M, M. h
5 R3 A, l5 Q+ X; n$ `(1)不使用运输工具。  k7 |. k  f" _' V! v
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?
  n9 o  O7 }3 `: b1 M第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);0 X0 K) W4 X; d  I3 ]

3 t+ |0 o, o- J" X9 _; L% |7 \6 R! z5 s9 o, b: K, `
(2)使用运输工具。
: d( ^- r+ T' _6 l/ c* w第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);, S8 W1 O1 c7 w4 n
  O9 U4 V' W0 t. ]) p, O; H( J
9 z* V# h9 ~# ]  ]& B
3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。6 o+ W3 k1 W: F+ z. E8 P9 ]9 p
, N; i$ ]0 O0 ~7 P

! t& v7 Y9 v# `& Z$ @案例2:
2 w# k5 t% [4 u/ V
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。
" K( l8 w4 a" y0 e( X( t* }下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。' G6 e; ?+ ]9 V( q! w
现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
2#
李锋 发表于 2022-2-28 13:16:04 | 只看该作者
请问,不使用运输工具这种情况在哪里编写代码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-31 16:35 , Processed in 0.088883 second(s), 14 queries .

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

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