全球FlexSim系统仿真中文论坛

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

releaseitem命令简介

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-13 12:11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-13 12:25 编辑
% N$ h' K" k4 c1 [, w5 z6 A( B. I/ o" ]6 J  H
releaseitem(obj flowitem [, num port ]); t: R; z: }  R& K# m" g3 P
释放指定的临时实体。
/ H+ U2 p2 c! N9 {0 F: [$ zreleaseitem命令仅用于以下两种情况;* V; e+ B  l2 l( k: J! ^0 g  K
1.临时实体在基础固定实体(BasicFR)之中并且尚未被释放。
: F! C2 L! X% m$ p2 q+ L) u2.临时实体在任意固定实体之中,并被holditem命令控制。* ~* F; b9 Y. m
第二参数为可选参数,用于指定临时实体的输出端口。如果指定此参数,临时实体被释放时直接由指定端口离开,并不激活“发送至端口”(Send to Port)触发。如果省略该参数,将由“Send to Port”来确定输出端口。
& O; @- l. @" X3 w( M( `1 a本命令执行后将返回一个整数。如果第一参数中指定的临时实体存在,命令执行后将返回1,否则返回0.( n. F+ Z% e1 N( a6 x+ W
2 F- e' t" j% o0 t  T
命令示范:
4 `, [# K8 L1 i: w5 H- J" m: |$ W
releaseitem(item);
  y1 @: X  y4 f# T% ]releaseitem(rank(current,1),1);% F5 K9 q) l! l, }& ?7 A' l7 Z
releaseitem(last(current),getitemtype(item));! d2 u, h9 [, z7 Q7 v: ~. j5 ]

5 D* k' q3 ~3 [3 g& i7 [8 `实际使用中发现,如果要释放的临时实体不存在,程序将报错。
. Q- B* M; Y/ j使用该命令时需要注意,确保第一参数flowitem指向正确。
, @$ H* e& C. r9 x  _8 e2 G
) ?1 ^/ ~7 ]0 M7 x9 n4 S3 ]' V
. R4 k. f. S  I' o8 L, E
案例1:
3 u4 R" s) u0 S" u9 T
使用releaseitem命令释放货架中的2个临时实体,在货架的“发送至端口”中设置“不释放临时实体”(Do Not Release Item)。2 f2 N+ T; {* c- R
1.如果命令执行时货架中没有2个临时实体,程序将报错。
" ]6 c+ j! v- \+ Q  L+ }/ J4 v' h% w
2.假设货架存在2个临时实体。
4 p; D  _# L6 G9 v" q, h( S. v
6 a1 A! {1 P( K9 J) f" w
, y2 s0 V5 a4 u: j; Z4 _" ?(1)不使用运输工具。1 T, B; Y6 e- W. ^. O# D& z  |
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1)。一旦命令被执行,第一个临时实体将立刻离开货架,此时货架剩下1个临时实体。在第二次执行releaseitem时,第一参数该如何写?是releaseitem(rank(current,1),1);还是releaseitem(rank(current,2),1);?
( m# I& S8 q  ?2 I- j6 \第一个临时实体离开后,原来的第二个临时实体现在变成了第一个。如果要释放原来排序为2的临时实体,仍然要使用releaseitem(rank(current,1),1);
6 A( K% P' N4 @) c! C" l1 m
& Q8 R- F  B, x+ g. ^) k$ P$ s
7 U+ T! L+ z7 S, [0 x; v) e/ `+ ]! y(2)使用运输工具。6 U' T5 |6 h3 U% D
第一次释放临时实体时,执行的是releaseitem(rank(current,1),1);一旦命令被执行,货架将调用运输工具,运输工具先执行travel命令,行进到当前货架。也就是说,此时虽然releaseitem已被执行,但是flowitem尚未被运输工具取走,并未离开货架,此时货架仍有2个临时实体。在第二次执行releaseitem时,应写为releaseitem(rank(current,2),1);* j9 T  J) |) E% L* e+ p+ W

! K- d" m( K) l& i& T# R( O. g5 r
3.在上述代码中,第二参数输出端口均未省略。因为在“发送至端口”中设置的是“不释放临时实体”,也就是说,临时实体如果要离开货架,将无法从此段代码中获取输出端口号,因此必须指定输出端口。可以尝试着删除第二参数,看看模型运行效果。5 [7 J5 f4 @7 c4 _4 L  P3 j! Y" g
% S' n% e0 A! y: m4 o# q4 [8 Z
- V+ @- h( a) `& p: W4 e7 ^. v
案例2:* L) ^7 v' q8 a" ~5 f
假设货架上现有10个临时实体,并且仍在不断补充新的临时实体。$ L4 \: |3 l& N
下游实体发送请求,需要5个临时实体。货架调用运输工具,已经发送了3个。
- o3 }% r: d1 W1 t, `现在下游实体发送了新的请求,需要3个临时实体。此时货架应释放哪几个临时实体?如何实现?
2#
李锋 发表于 2022-2-28 13:16:04 | 只看该作者
请问,不使用运输工具这种情况在哪里编写代码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-28 11:52 , Processed in 0.076359 second(s), 14 queries .

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

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