设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5159|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。6 D+ K9 a& n8 K( G

2 c7 b4 l, _$ k: m. k. m某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。; w( Q' @! q: Y, z) b

' h4 S5 O% M6 _7 Y我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。
. Y; A% n$ J" _; M" |
4 C; F5 U' J, y% h如果我使用如下method与buffer的exit. w" B3 u3 c% X2 M& [  o' Z4 y- H, V

* A4 [' l. M% O' C. o" r% `/ Jif @.arrival_time < EventController.simtime
! J6 Y$ s, e- y2 A5 Z6 Y    then 。。。。。。。。
6 [+ `6 L! \# I, {. A. B2 y; {" X% m7 v; U' b) a9 Q" M' [7 ]
@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。
8 ~" [5 R, |9 y5 Z8 B
4 b6 S6 `4 {0 P$ V( e/ \如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。  P% o7 O( j/ o7 \' C
用一个tablefile,第一列为产生的时间,第二列为产生的个数。
9 @$ c" O( a( d& O" \" T4 F, @2 L) L7 f% P! m
程序可以这么写
% i0 l6 c. @8 b" u& owhile i < table.yDim loop
0 r( W7 z$ H) o8 r  wait table[1, i+1] - table[1, i];* }! ]+ W9 }# L% j$ R* W2 _
  for j := 1 to table[2, i] loop
" K! U: s: f' t+ ?1 q) ~8 ^3 ~& ^    myMU := ...create(Buffer);
7 u) X$ d% v6 @6 H; d  next;
  r6 D8 x4 m2 `3 ]! g% [7 j- C4 @: `  i := i+1;& z7 {* e- u4 u, Y+ t4 ^
end;
9 H* E4 P  @$ }# m8 K% f- J% E  V/ r& y
注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-19 09:54 , Processed in 0.013387 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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