设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5351|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。
1 l4 u! z4 C" x$ H3 `5 X0 h; u; s; Y! j( J$ \8 m
某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。. [1 _% O7 ]7 }8 O1 y) `

" j; h: E6 N  @8 {2 l! J2 N0 Q/ J3 b我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。' ?! C: W  I2 J2 m3 V" |+ p

8 w! x) O4 S7 M6 X$ [& N: \如果我使用如下method与buffer的exit7 m; \8 p2 V3 L# u9 M6 P: H

8 }) }$ k0 i" qif @.arrival_time < EventController.simtime & P% g# q7 j7 e9 r2 z
    then 。。。。。。。。( N% ^8 ]- u5 W
; t# P7 K# H! r0 @
@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。+ @) C. H% J7 }1 V" r
: m7 e: ~; T/ `1 d; F
如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。
  o: W5 Q# E) p  @4 \' {用一个tablefile,第一列为产生的时间,第二列为产生的个数。6 h$ q/ }3 q' [5 F. v5 `
9 {8 e; W* D/ t( C
程序可以这么写0 F$ D4 p% F5 l" e
while i < table.yDim loop
9 [' [2 y0 F: q3 y/ E' G  wait table[1, i+1] - table[1, i];2 [! O7 D/ Y3 S, K5 M- W
  for j := 1 to table[2, i] loop% R  g: U* P" F3 H
    myMU := ...create(Buffer);  Q9 S& e# Z. M' e. r7 b
  next;2 M  ?0 L. L  h' [; Q. f
  i := i+1;
+ U6 A7 x2 _4 o! N) oend;
7 b( H0 b' m" Y! w4 O& P
2 _# j8 k0 m* U4 m+ e, C注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-5 09:54 , Processed in 0.021139 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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