设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4264|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。2 m6 Q7 i# W4 a7 z4 P* j' _: a9 E% w

* A2 I4 d, e0 E某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。7 h6 u2 C% B/ a+ k
) I. D: j# X- J* M+ r! Y4 o# D
我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。
0 r+ Q$ O; Q+ d9 w: J) Z- V. N- |. f: j* D7 N* n1 W
如果我使用如下method与buffer的exit+ D) f( ?9 s# h6 p, i# W8 U
/ d( A) M( l$ Q( k& n
if @.arrival_time < EventController.simtime
+ K$ ]9 D/ A, l8 H: H$ j' A    then 。。。。。。。。
6 x) d1 K& s6 s! f1 Y! t1 ]: i* @4 h1 P/ @9 r
@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。, l9 I: B: N9 Z: x- R" B

- B( H( `+ C' B2 [如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。0 k% n. ?3 ?, e
用一个tablefile,第一列为产生的时间,第二列为产生的个数。
/ @; w; {: v! o+ x2 S
' f* o, K9 w/ M0 M6 t: n9 v程序可以这么写9 M' D  b( j" ~+ P, T
while i < table.yDim loop
9 H! C5 [: i8 W  wait table[1, i+1] - table[1, i];. O6 J/ f4 d! J8 T0 B; l: H
  for j := 1 to table[2, i] loop# O" X. s& h: ~9 {
    myMU := ...create(Buffer);' ]& j( L; s6 @- L2 [
  next;+ {# d8 ~' z$ E: x! }9 M$ R! p' G
  i := i+1;
  t! f0 p) B/ o' W; f1 j- K1 {end;9 F/ `" R+ J. g1 L- y1 S

. i1 c) Y8 i' `0 T2 v6 O注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-19 23:20 , Processed in 0.017755 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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