查看: 6|回复: 6

如何发送一定数量的箱子到下游端口

[复制链接]

主题

0

回帖

134

积分

注册会员

积分
134
发表于 2015-7-20 17:00:45 | 显示全部楼层 |阅读模式
举个例子,现在暂存区上有15个箱子,上游有货物源源不断的发送到暂存区,如何设置使它一次只发送10的倍数个箱子到下游

主题

0

回帖

4万

积分

版主

积分
45331
发表于 2015-7-20 17:42:35 | 显示全部楼层
在离开触发进行条件的判断,结合使用getoutput()getinput()content()命令得到当前暂存区进入或离开或目前有多少个临时实体,然后用openoutput()closeoutput()来控制开闭,以控制进出。

主题

0

回帖

134

积分

注册会员

积分
134
 楼主| 发表于 2015-7-20 18:59:11 | 显示全部楼层
[b] [url=http://www.flexsim.asia/redirect.php?goto=findpost&pid=17414&ptid=5306]2#[/url] [i]慧娴亚伦[/i] [/b]
我在离开触发里面写了一段代码,能帮我看看错在什么地方吗?

closeoutput(current);
int n=content(current);
int k=floor(n/5);
if (k)
{
openoutput(current);
int m=getoutput(current);
if (m>=k*5)
{closeoutput(current);}
}

主题

0

回帖

4万

积分

版主

积分
45331
发表于 2015-7-20 20:44:37 | 显示全部楼层
额。你第一行代码就关闭了输出,然后此时的n应该为1,推出k为0,而k=1才能进入k下面的判断语句,因此不会触发if里面的语句。那么第一个item触发离开触发的时候就会关闭输出,再也不会有新的item离开了,自然也不会触发离开触发。所以第一个item离开之后就不会再有新的item离开了。
从你的代码和描述中,我还是不清楚您要实现的效果到底是怎么样的。

主题

0

回帖

134

积分

注册会员

积分
134
 楼主| 发表于 2015-7-20 21:13:51 | 显示全部楼层
[b] [url=http://www.flexsim.asia/redirect.php?goto=findpost&pid=17417&ptid=5306]4#[/url] [i]慧娴亚伦[/i] [/b]

暂存区接的是一个合成器,合成器一次将5个临时实体打包。当暂存区上的箱子数量是5的整数倍的时候,就将5的整数倍个箱子发送到下游进行打包。若暂存区上的箱子数量除以5有余数,比如说可能有1,2,3,4四种情况,则剩下的1,2,3,4个箱子继续留在暂存区上。

主题

0

回帖

4万

积分

版主

积分
45331
发表于 2015-7-21 11:19:14 | 显示全部楼层
那么暂存区设置成每5个批量发送试试?

本帖子中包含更多资源

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

×

主题

0

回帖

134

积分

注册会员

积分
134
 楼主| 发表于 2015-7-22 09:07:52 | 显示全部楼层
[b] [url=http://www.flexsim.asia/redirect.php?goto=findpost&pid=17421&ptid=5306]6#[/url] [i]慧娴亚伦[/i] [/b]

原来那么简单,谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|京ICP备14043114号-2

在本版发帖
关注公众号
QQ客服返回顶部