设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4896|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。& P+ h" K- K/ ~1 O* s- Q/ a; U! Q: C
; o4 S0 A) h6 Y& j* K
某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。/ _3 I! z5 G+ c/ C
! F( J! ~' H- y0 G" h- s& T* q
我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。2 U" Q, v' p+ y
$ d2 x0 p' E. I" n: W0 w
如果我使用如下method与buffer的exit  y  Q1 X" p# q$ l
6 x* x9 i, A5 C
if @.arrival_time < EventController.simtime 7 }# ]9 P( {8 \
    then 。。。。。。。。
. j: B3 ?# z+ Y/ ^
9 h% K- Z- j9 R  c& D$ `: z@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。
4 u5 \" @8 Y6 z+ C3 d7 h+ E* y4 O; o
如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。2 L" s! ~' W  a( M! Z
用一个tablefile,第一列为产生的时间,第二列为产生的个数。
0 Y# U6 b! {$ H/ a6 i- |  E0 P+ n' c5 R3 L& k$ w$ \; i
程序可以这么写$ }% A: U5 b& G& u/ {; X4 Z/ y
while i < table.yDim loop8 K6 l* I7 m8 O' o! ?
  wait table[1, i+1] - table[1, i];
% ^4 s0 S- Z5 O# o$ D  for j := 1 to table[2, i] loop$ b. H& i+ M$ \1 B! \) d* m9 }) {
    myMU := ...create(Buffer);- G6 P0 Q! M# w) g4 _" Y
  next;
- ~% i( a1 U5 T. W" E0 K, v$ @4 @  i := i+1;5 ?+ n4 P" ]7 {
end;
+ L, H5 v5 A6 e' O) g$ ^
( h9 D  c" f9 z( J: K' Q注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-31 07:51 , Processed in 0.013731 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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