设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5230|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。
' ~6 d) d2 U# v% j, H1 j$ O8 Y. s
6 z2 L$ F* }/ d2 F某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。
, c* h) F0 h$ Y6 E
. ?6 g! A9 p7 B- s. b/ A我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。+ B' _' U# I# m* f) ]- u( g) o

) i- q* |. [$ ~0 F% b如果我使用如下method与buffer的exit/ d) V9 U7 k9 B& l: j4 u

, ^/ q$ s  U% I7 r: [if @.arrival_time < EventController.simtime
. i& W8 Y$ z8 y* J9 U/ B    then 。。。。。。。。
7 I' @! f% m: A9 b2 P6 e
: v9 V6 Z$ a6 v% P5 `9 ^% u@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。
; `2 T; F" r& D% }0 z: C# ~9 p9 L; F+ i! n+ X
如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。1 g' D  h! X9 L. ^
用一个tablefile,第一列为产生的时间,第二列为产生的个数。5 ~/ i' T+ @. B: L7 j7 O1 y
" l) n. U! ?. c& M/ \: D
程序可以这么写9 R/ i' G1 a" n# w6 u- o, w
while i < table.yDim loop
/ V% w; W5 L+ J% j/ O  wait table[1, i+1] - table[1, i];; V) f" V6 `" ~1 R4 Q% i
  for j := 1 to table[2, i] loop( ^! y; f- R" [, {( X) i
    myMU := ...create(Buffer);
2 j% e+ d! t( {& V1 u6 d, Z  next;
/ G$ S7 x" I* v- r% V7 G. O  i := i+1;
& W1 p: _- c2 }" v6 y9 ^. Q( a9 V. uend;
+ S' B1 J7 z. b9 n' p3 a0 `
) a) D/ V' K7 u* j8 d注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-3 13:25 , Processed in 0.017219 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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