全球FlexSim系统仿真中文论坛

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

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

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

本帖子中包含更多资源

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

x
12#
zjj0605 发表于 2019-4-3 17:39:08 | 只看该作者
感谢楼主的分享
11#
 楼主| shane 发表于 2019-3-27 17:32:45 | 只看该作者
FanQin 发表于 2019-3-27 17:05
+ u& K/ Q' Q( D6 X2 A% b) x$ q/ R代码逻辑错了,你这边需要用到三个输出端口,但是这个代码只适用于两个输出端口,建议用port by case;
( U6 P6 y9 R/ J1 J  o
啊没事了,我发现哪里出问题了。if后面少加了一个()。
" J$ [0 L9 m# e: v" X这样子就可以实现了
9 B/ ~6 c. M( b( x! ~0 Mtreenode  item = parnode(1);5 \( f7 `: K, Y% l' h3 f" ?
treenode  current = ownerobject(c);% R1 m0 f$ a( Q' ^# J/ @/ n# z9 e! w
/**默认分解器选项*/1 q7 e2 P0 H) [
if(getvarnum(current,"unpack")), {9 f; _8 m; t
{# x& b  M, t, f0 _* L( Y
  if(getrank(parnode(1)) == 1)- d1 |. z0 K8 a  Q8 R+ \2 J
    return 1;
: _. H/ [% f/ M% g# y6 v   else
: H8 `- I$ x; L$ G8 j+ `   if (content(outobject(current, 2))<getvarnum(outobject(current, 2),"maxcontent"))  E5 b5 F) X# v3 H+ O1 f& ]/ t
    return 2;
& |; B4 |$ E% O3 l& S   if (content(outobject(current, 2))==getvarnum(outobject(current, 2),"maxcontent"))
1 G( w3 D) A2 {" }$ b( c0 x' C    return 3;
1 ]3 u- e" N% a) l}) G( W  g2 M2 T4 I1 `
else$ C! q8 o  g3 E3 o9 f
  return 0;
10#
FanQin 发表于 2019-3-27 17:05:15 | 只看该作者
本帖最后由 FanQin 于 2019-3-27 17:11 编辑 $ v. }4 Z$ V( j
shane 发表于 2019-3-27 16:53! h( E0 k& p; t, Q) I3 {! S
我是打算这样子写代码实现的,但是不知道哪里出问题了
代码逻辑错了,你这边需要用到三个输出端口,但是这个代码只适用于两个输出端口,建议用port by case;
9#
FanQin 发表于 2019-3-27 16:54:22 | 只看该作者
shane 发表于 2019-3-27 16:498 z" ?+ M7 L  T* Z
对呀,我的目的是一个暂存区10个装满了,然后就发送到另外一个暂存区。

- S; Z7 m+ {" ~2 n. i6 I0 c3 g终于理解你的意思了。那是不能用最大容量设置。还是反回到我第一个给出的方法,需要在sendtoport上编写代码,判断进入下游1的数量是否等于10
8#
 楼主| shane 发表于 2019-3-27 16:49:49 | 只看该作者
FanQin 发表于 2019-3-27 16:436 f4 ^+ g, H* P- v# X
下游暂存区的最大容量你设置了10,所以只能进入10个。
) Y3 w* W6 H( l( f9 X& A& e
对呀,我的目的是一个暂存区10个装满了,然后就发送到另外一个暂存区。
7#
FanQin 发表于 2019-3-27 16:43:11 | 只看该作者
shane 发表于 2019-3-27 16:405 l. V6 s. b) O
大佬,模型在这

0 C" ^* V: H- \5 ?8 ^下游暂存区的最大容量你设置了10,所以只能进入10个。
6#
 楼主| shane 发表于 2019-3-27 16:40:18 | 只看该作者
FanQin 发表于 2019-3-27 16:03
1 P5 \, z. s" Z6 J& M( T最好能看到你做的模型,这样看不清楚是哪里出了问题
1 r& F2 x4 j; B, @6 v5 g: f
大佬,模型在这

本帖子中包含更多资源

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

x
5#
FanQin 发表于 2019-3-27 16:03:51 | 只看该作者
shane 发表于 2019-3-27 15:59* z" Y" Y, x3 H5 n
直接设置最大容量会出现这样卡住的情况

$ V+ X0 k5 z, i- V最好能看到你做的模型,这样看不清楚是哪里出了问题
4#
 楼主| shane 发表于 2019-3-27 15:59:46 | 只看该作者
FanQin 发表于 2019-3-27 14:53
6 K# n" m) S6 c# F0 b或者直接在暂存区设置最大容量
6 z9 d8 e. p1 @3 a
直接设置最大容量会出现这样卡住的情况

本帖子中包含更多资源

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

x
3#
FanQin 发表于 2019-3-27 14:53:19 | 只看该作者
FanQin 发表于 2019-3-27 14:49
0 @0 V" s3 }* s3 o$ x8 m- f在分解器的sendtoport上写个判断语句,if(进入端口1的item数量等于20,就发送至端口2)
/ g1 W9 F# [0 E7 A! Q3 ^3 _
或者直接在暂存区设置最大容量
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-6 03:57 , Processed in 0.073880 second(s), 15 queries .

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

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