设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5102|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。3 U* r( _! T2 ~: p" P% o  C

/ F; V, {- D% L# V3 ?- J3 {某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。& A/ e! b! `- k, \

' h, `6 d# w1 L% [. o7 a) O我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。2 k, p7 {& T7 |  a

1 _& T# s3 K6 K, E% @! @4 D如果我使用如下method与buffer的exit7 Z4 |# p% m4 |+ @( _, T
$ g% w8 H0 ^5 q* O
if @.arrival_time < EventController.simtime * }! g6 _' v' H0 ~3 T0 s6 ^+ H
    then 。。。。。。。。0 R0 o* n8 h0 h4 l

# X7 l4 w5 U! @% A- y2 A3 g% a8 U@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。/ d3 o6 b) d  O4 z. U/ a+ {" S

# |) H0 h' G/ K7 G: J如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。
* Y/ U: ~- k* y/ ~用一个tablefile,第一列为产生的时间,第二列为产生的个数。
/ n2 N3 f4 B. P3 ^  A7 d( H/ e, m$ k
程序可以这么写
+ V+ H, N5 _' S' }while i < table.yDim loop
! E( K' M+ Z+ G$ A$ w- i) ?: C  wait table[1, i+1] - table[1, i];
& Q% v5 K  t7 c+ h; X; E4 Y3 _# E  for j := 1 to table[2, i] loop
2 {5 z% L9 M6 y1 h1 W/ q    myMU := ...create(Buffer);, P1 t$ G# j6 Z: y- E
  next;
/ |6 {( h8 O( W7 Y' T% z4 i1 ]  i := i+1;) u9 Y2 c  W8 u: C% ]+ j, y' h
end;
+ V: U# I  |$ ], J; q8 o) y9 K- ~+ G5 k: q! H* S
注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-10 09:49 , Processed in 0.019200 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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