设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4953|回复: 3

[求助] 如何在特定时间段后同意MU通过

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。; |5 p8 Q& `, z2 U2 r" I6 K0 Y

, N9 h$ ], R$ T" @( b6 o某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。. X% b! J/ r& @4 r; h# \
6 k5 y! d3 C1 w' d9 }
我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。2 D4 ^; Q( T4 r  y- i$ |
; F$ Q# ]. `0 @
如果我使用如下method与buffer的exit
3 y$ i2 Y' O9 K6 a& p, S
* F& M9 k. M+ ?/ E: z; o# y6 ]if @.arrival_time < EventController.simtime + U8 o0 H1 y7 e. U7 [5 C
    then 。。。。。。。。
& @* i0 a1 X. _1 A7 X/ s0 }" h0 B7 H& S
@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。
+ k. h$ l( ?. y; n2 a
6 V! Q* }4 ~( @0 d# ?如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。
* A  M7 D4 X* \! F* `8 {, s用一个tablefile,第一列为产生的时间,第二列为产生的个数。1 U1 n  l2 K/ T0 y8 O

. P9 a: e- ]4 k0 \- t程序可以这么写7 x$ |  G2 Z. V8 I5 x/ _" z
while i < table.yDim loop6 y1 Z* v( d& o" i! Q
  wait table[1, i+1] - table[1, i];' o7 Z$ Q9 [, W9 R; I- L1 x/ @
  for j := 1 to table[2, i] loop. [" i2 T: n  [5 j
    myMU := ...create(Buffer);
* K2 A3 c# x5 R7 J9 R" g  ?: j  next;' `5 ?1 S7 }& N0 R
  i := i+1;- P9 p/ o3 f0 G1 E% I. U' |
end;( v# c2 j9 Z0 o) l( v5 {

6 p: W) S6 `- r7 I注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2026-6-14 15:37 , Processed in 0.016342 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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