设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2975|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。  T) B: S& L  p5 \+ G4 J3 G

2 ~, M$ Y- E/ r3 {9 X( u4 T0 `某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。4 v+ h# x$ l/ h; X1 f

: O" {3 S, p% [3 _& X我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。: M5 G* ^  i$ H+ @' e4 ?

- h0 Z7 I# h( h9 i- G如果我使用如下method与buffer的exit
% h# K9 O% F4 b7 M$ f: _) {* R0 m: u& v
if @.arrival_time < EventController.simtime
  N* J+ k6 Y0 D( P) E& @* f" q/ U0 s8 ^    then 。。。。。。。。
* i0 @0 D' Q4 j4 a* ]% O+ ~9 _' Y% i9 T: }% }( M! B- q, |) \
@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。
1 ^) \. `+ [, R; X% @! y4 [' @$ |" R& J+ x; e
如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。! b3 i4 m- E* _* ]" ~; s9 i8 O
用一个tablefile,第一列为产生的时间,第二列为产生的个数。
2 a& B( N! w' g+ M& C3 \+ m3 i' R: N$ |5 a0 H* M: s7 y5 ]
程序可以这么写* k3 H5 H( _% n  N
while i < table.yDim loop8 @% n" W' |; J
  wait table[1, i+1] - table[1, i];& k% K0 \" X# }1 B7 ?  S
  for j := 1 to table[2, i] loop
' \! M2 l% o& ~8 i# ^2 F4 e    myMU := ...create(Buffer);* m8 M' `) E* C1 A
  next;
+ Y# Q9 [5 X0 N0 w+ J  i := i+1;! L% t! d& N9 E# X& _! h, ~
end;/ |  A2 g3 G7 E

+ k9 t, V* r; [" m$ T: O" ]注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-2-19 06:22 , Processed in 0.017623 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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