设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3963|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。
' R; ]/ {4 y, R! a
8 F; K  X3 L/ y某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。
1 X, y/ }/ C4 G1 D9 J' d+ D% k0 }$ i+ D- T6 e9 N; B6 |  W
我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。+ }. @, |6 M$ D3 r" V' W
- F7 ]3 j; C) i8 E# z* r
如果我使用如下method与buffer的exit0 Q4 ?$ F. A+ b6 p1 ^7 D. f

) ?- \  ~& Z8 G" B1 Nif @.arrival_time < EventController.simtime
$ P! V  M" y2 |8 v% l' E' B1 c    then 。。。。。。。。) x9 l, e3 M  Z- l
  y* G  l( d5 ~% x+ L" V7 y
@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。
# d/ Q5 J0 E6 Z( @+ b9 @& R. O6 z5 K, G4 E, s% E( n8 b" u5 y# Z
如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。, Z, j$ l1 z5 R7 z- I! E
用一个tablefile,第一列为产生的时间,第二列为产生的个数。3 [# u% `7 K6 N. E  B+ j

7 N6 X/ R4 A2 v1 g6 [! h程序可以这么写0 D* }) g" a" [8 N, M+ i, {( I1 ~
while i < table.yDim loop) y# u/ z# @( ~6 O: ^" o6 t
  wait table[1, i+1] - table[1, i];
7 l5 t+ {  |8 a! E- e  for j := 1 to table[2, i] loop
) G7 y' L% ^$ ?. L6 T8 y- h    myMU := ...create(Buffer);
8 R( M! s+ `, R/ u  next;
) ]5 }& \5 V8 X9 L: y  i := i+1;
( h8 X$ M" j/ l4 Mend;
& J0 s" i' O& M3 F& Z( n8 Y. E; J5 i: ^$ B0 h' X( H1 I
注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-10-14 14:19 , Processed in 0.020509 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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