设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5075|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。
1 r5 X0 G! T' B- E. }6 D0 ?8 u. \+ S* ]7 W$ [0 z
某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。1 J& [" y9 O; B9 M2 t
3 q2 @1 l) |" Y/ r- c! r0 d
我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。
9 Z) Y! {5 j) }3 h. d. o" H# K9 ]1 T9 w% X: s$ M
如果我使用如下method与buffer的exit( v7 |; p# `4 t: d% n1 b& ]. T
2 u2 `# t- X0 Q" Z8 K
if @.arrival_time < EventController.simtime + a  U0 |% j2 b& z. `
    then 。。。。。。。。
3 H, w; G; Z" u
% m# e# e. c& r1 D@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。0 Q0 t1 D" g) H- `3 T6 H# k

" \: N- m2 _' O如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。( D4 ^) Y3 H1 T; {" n7 O
用一个tablefile,第一列为产生的时间,第二列为产生的个数。3 Z9 G- Q, _" c4 ]' R' w
* d" [7 P# |% A  ^
程序可以这么写
( e. U! q9 H! {7 I7 h' uwhile i < table.yDim loop* i% d' j/ R+ `; U8 K9 h2 i# L
  wait table[1, i+1] - table[1, i];
' |. Z% T2 g; a# U  for j := 1 to table[2, i] loop$ I# y' U5 L; L8 U
    myMU := ...create(Buffer);; Z+ ^% t( F$ D/ d
  next;
0 m4 W0 p0 F" l) w4 Z- k4 D! x  i := i+1;) k$ x2 w& b8 j3 y7 L
end;
- P) A5 S5 s' ?# T" R+ m" z- x2 {$ O0 B: a! A  y2 r
注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-7 19:06 , Processed in 0.017419 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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