全球FlexSim系统仿真中文论坛

搜索
查看: 9070|回复: 12
打印 上一主题 下一主题

如何让分解器中容量发往多个下游

[复制链接]
跳转到指定楼层
#
shane 发表于 2019-3-27 13:17:18 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
想请教一下大家,在不添加其他的实体的条件下,能否让分解器在拆包时,第一个暂存区容量满了以后,发往第二个暂存区。需要怎么进行代码的设计呢?
5 w2 p/ V  }; V' n+ }; }/ W

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
12#
zjj0605 发表于 2019-4-3 17:39:08 | 只看该作者
感谢楼主的分享
11#
 楼主| shane 发表于 2019-3-27 17:32:45 | 只看该作者
FanQin 发表于 2019-3-27 17:05
2 q. \. y$ X3 K) M8 T4 q- \) D代码逻辑错了,你这边需要用到三个输出端口,但是这个代码只适用于两个输出端口,建议用port by case;

, {+ `2 @1 ~6 x" }% T+ }啊没事了,我发现哪里出问题了。if后面少加了一个()。
" D% r. l; K$ r' F6 |这样子就可以实现了
& v7 i( q/ @: Y" h# ~treenode  item = parnode(1);  p6 J  t7 \+ E5 C& x2 W: l6 p& D& i
treenode  current = ownerobject(c);3 L! F& k4 |4 j/ |  v1 N3 m
/**默认分解器选项*/6 d& j2 `* Z0 ]6 E; l
if(getvarnum(current,"unpack")), H7 z8 \9 Y7 g$ D+ v+ T5 ]" e
{' C0 F7 h0 a6 ]. h0 i2 l
  if(getrank(parnode(1)) == 1)
6 M  g4 @$ G7 @" w4 w! i9 `( |: n! Z    return 1;6 @) e3 t- G: T' }: f6 A) n+ H8 I
   else
, W7 b7 {/ Y7 ~. {; w2 V/ V& |   if (content(outobject(current, 2))<getvarnum(outobject(current, 2),"maxcontent"))/ t8 ^* A' e8 J- _9 _7 A
    return 2;
- e& j1 F' C& M# y- U- V   if (content(outobject(current, 2))==getvarnum(outobject(current, 2),"maxcontent"))
& S! w4 f- o/ c# I6 S3 M    return 3;8 R7 O; }( A6 g8 m! z# s( z: q
}
& [6 w# V$ \! w" f( K3 T1 melse0 K+ ~/ f9 r+ d' F+ z
  return 0;
10#
FanQin 发表于 2019-3-27 17:05:15 | 只看该作者
本帖最后由 FanQin 于 2019-3-27 17:11 编辑 % v% I  i! d# _& e
shane 发表于 2019-3-27 16:537 _& @. G- t" |0 m" x% d
我是打算这样子写代码实现的,但是不知道哪里出问题了
代码逻辑错了,你这边需要用到三个输出端口,但是这个代码只适用于两个输出端口,建议用port by case;
9#
FanQin 发表于 2019-3-27 16:54:22 | 只看该作者
shane 发表于 2019-3-27 16:49
9 l3 j' u3 {7 W7 Q对呀,我的目的是一个暂存区10个装满了,然后就发送到另外一个暂存区。

: r3 E& O) M3 k" ]. t" g终于理解你的意思了。那是不能用最大容量设置。还是反回到我第一个给出的方法,需要在sendtoport上编写代码,判断进入下游1的数量是否等于10
8#
 楼主| shane 发表于 2019-3-27 16:49:49 | 只看该作者
FanQin 发表于 2019-3-27 16:438 `; W; `# @5 ]3 p! k7 O5 a
下游暂存区的最大容量你设置了10,所以只能进入10个。

% J/ N: x- n+ W; s; y对呀,我的目的是一个暂存区10个装满了,然后就发送到另外一个暂存区。
7#
FanQin 发表于 2019-3-27 16:43:11 | 只看该作者
shane 发表于 2019-3-27 16:40) z8 \0 u2 o( G! t& K0 \! w
大佬,模型在这

* b; q5 k" i6 T& A下游暂存区的最大容量你设置了10,所以只能进入10个。
6#
 楼主| shane 发表于 2019-3-27 16:40:18 | 只看该作者
FanQin 发表于 2019-3-27 16:03
5 w+ c1 [; I; p+ ?7 I最好能看到你做的模型,这样看不清楚是哪里出了问题
* d1 u- A6 K' H  e/ F% O
大佬,模型在这

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
5#
FanQin 发表于 2019-3-27 16:03:51 | 只看该作者
shane 发表于 2019-3-27 15:59: U) Y( j4 q: V5 s$ R0 F2 c
直接设置最大容量会出现这样卡住的情况
- N+ g# C% w4 ^' m& B: x/ [5 l4 y1 N
最好能看到你做的模型,这样看不清楚是哪里出了问题
4#
 楼主| shane 发表于 2019-3-27 15:59:46 | 只看该作者
FanQin 发表于 2019-3-27 14:53
( \' g5 p" |- i或者直接在暂存区设置最大容量
: n$ X' U* F/ ]. p
直接设置最大容量会出现这样卡住的情况

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
3#
FanQin 发表于 2019-3-27 14:53:19 | 只看该作者
FanQin 发表于 2019-3-27 14:49+ H$ i3 c9 C7 `& t
在分解器的sendtoport上写个判断语句,if(进入端口1的item数量等于20,就发送至端口2)

6 Q- E. `/ W$ r5 E1 ^8 @' v9 x或者直接在暂存区设置最大容量
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-29 22:02 , Processed in 0.080995 second(s), 15 queries .

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

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