全球FlexSim系统仿真中文论坛

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

releaseitem命令简介

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-13 12:11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-13 12:25 编辑 ; k, w$ C% [* h( i1 J

  s0 Q- i/ Z; N4 O$ K9 L- a2 greleaseitem(obj flowitem [, num port ])
$ ~6 O2 P3 D5 Y3 }( R  T# a$ k
释放指定的临时实体。
) \  l+ j. p- O2 L& G& Dreleaseitem命令仅用于以下两种情况;
2 K3 m, P( [+ Z" U, A" @1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。0 |0 A& k+ E1 X
2.临时实体在任意固定实体之中,并被holditem命令控制。9 u' R: F7 Q; z4 P" D- r, Y
第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。) K9 @# a- f! o5 \
本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.1 q) R1 v) ~/ {1 ?
4 Z6 a/ z/ ]0 c* K- b
命令示范:& ?# a( ]! k) S5 c2 i
releaseitem(item);
9 W' p$ |- v% f, I9 Breleaseitem(rank(current,1),1);+ h$ f) E4 l8 ?' d3 Y0 F
releaseitem(last(current),getitemtype(item));" B% L# U1 |$ B" U9 u

4 U  x; |/ ^: k& `实际使用中发现,如果要释放的临时实体不存在,程序将报错。0 l* p7 p: d+ N* u3 A  ~; O5 u$ i3 a
使用该命令时需要注意,确保第一参数flowitem指向正确。
" D8 p. e6 i$ z: e$ H
2 l( r0 {4 H5 y7 i. Q3 m: l% N

3 u$ y. M0 j" u3 n5 H7 _4 q案例1:. W/ r  j; y' U
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。1 j. d2 K& h* f: [& G/ E7 q% _
1.如果命令执行时货架中没有2个临时实体,程序将报错。
3 B3 M4 }' s9 L/ U! D
) h; O% u/ K" F3 M3 m2.假设货架存在2个临时实体。+ J, G( b- i7 F! `1 u! z; g
2 G2 k8 Z. b( l, }; h; `

3 h. M6 u' k+ Q  z8 g(1)不使用运输工具。; p6 V6 S1 ~- W/ I! B4 O$ N
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?- N; r1 H; j; u4 N0 u
第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);
( J8 d4 L" f( f: Z0 a! k, d6 Y' t* F. Q2 S/ k  F

. \; _9 m( _8 v( S5 u2 ]' Y9 i(2)使用运输工具。4 r/ J* O. q7 Y6 M
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);
6 P* b% E: d& B9 C1 ~; C9 F& b! w" X; E5 m
/ s& a2 B/ y+ d; r( S7 T% q' W3 b
3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。
6 ^0 V  f) k3 T  A% H. R* E! I: R7 l! V! D

% E3 u! s- u/ J2 q( I* F案例2:
  X1 Q5 h8 o: ?# y: H
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。
( t; N) B3 K) @- }  N2 I下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。% w, |/ W$ M2 F
现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
2#
李锋 发表于 2022-2-28 13:16:04 | 只看该作者
请问,不使用运输工具这种情况在哪里编写代码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-6 03:07 , Processed in 0.071875 second(s), 13 queries .

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

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