设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3749|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。
1 D' t2 W/ y/ n( X; _9 G# ^/ ~! O- E1 C2 n; Y  k
某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。, F3 d# B0 a. I
8 L9 V$ j6 r6 }, |" c3 ^/ T  @; U
我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。9 S- v' ~/ D% T" b
+ O# E. k: O! N, `( \7 N1 O8 e
如果我使用如下method与buffer的exit
. e9 l& o" v* y( r
- t6 L" }# y0 iif @.arrival_time < EventController.simtime ! y! a6 y2 u; S) @  C7 Z
    then 。。。。。。。。
  P3 q( g1 }4 u( ~* u) V! ?* K1 ]* r& D+ \: p2 r% M# J
@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。
0 N4 `6 x- M  p3 J
% h4 a' P1 G  F- w1 w+ Y; d如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。
# _0 h( R) k% A6 U& {7 q2 d& x7 j- \用一个tablefile,第一列为产生的时间,第二列为产生的个数。
$ d1 [! b) A+ ?, r& v
  a- [7 J" e8 z' f0 q程序可以这么写
* s. ^& F" c  h, c/ G. Qwhile i < table.yDim loop
4 B$ J) l& R" d, D  wait table[1, i+1] - table[1, i];
4 A7 a# d$ H0 J% \  for j := 1 to table[2, i] loop
& i# X' [% V2 a4 c/ j    myMU := ...create(Buffer);4 J( f0 ]. s) }4 A* n* x
  next;
7 F" \7 x6 X: T) u$ J  i := i+1;
0 c9 b2 M* e; q( {  J1 Mend;
# S2 M1 T+ v) l# @6 Z
/ c( v( c  o8 h# {* D注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-29 16:20 , Processed in 0.013268 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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