设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5307|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。- h2 t4 T/ b# D$ W/ z2 c  S5 k' J
0 c* B( q4 ?/ ^! u. ?0 H7 s
某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。8 f% a( o; I0 q9 [

: z- O& {3 Q( E我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。+ \5 @9 ?! v) G6 W! V, X/ q! R
! P7 G9 D  `5 I0 E2 e/ ~, ^
如果我使用如下method与buffer的exit
3 N9 N- O6 N% e7 G* Y0 J# ~8 L  b8 B* Y$ j2 I/ q3 [, A% _& I
if @.arrival_time < EventController.simtime 8 L! n5 [* c/ p4 z# h% Z
    then 。。。。。。。。; W; Z. [3 e) g/ z: G0 P

( M) ?& E* b2 v: P5 W( a+ {; _( @@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。4 y9 v4 X, k2 n3 k; \2 ^' i

4 t/ P/ \. i: W9 v6 ]- [) L# n* R如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。6 s, ~& z& _! ?3 R* F
用一个tablefile,第一列为产生的时间,第二列为产生的个数。/ D& d9 |- s. y, E5 B% J' m

( C4 |' a9 m/ e; t' X6 E) O程序可以这么写
$ b1 P8 d- p2 h4 d9 V/ xwhile i < table.yDim loop: L" d6 {& q" i/ s9 c
  wait table[1, i+1] - table[1, i];
# U4 o- a3 A. u% \6 f7 H7 w  for j := 1 to table[2, i] loop: ?$ c- W  c! U, b6 [7 w& |9 q
    myMU := ...create(Buffer);1 L  W6 `; T0 J  e! |
  next;
$ C6 V# p7 p+ s6 @  i := i+1;, O& C5 u: v( @( ]
end;
2 }, g1 v2 j: h* ~  C% i* u
* f" ]5 K7 b) [9 h" ~注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-28 03:46 , Processed in 0.018097 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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