设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2781|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。
' E5 ]  X) J! Z3 O2 n7 }. b) n" U; c' a0 L2 n0 U
某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。& _( J2 _' a; v& ?
) p1 M  D: |  j' c: F  f7 g
我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。
" k" q) Y! _8 r% j  l* O
0 `! n5 s( P5 C如果我使用如下method与buffer的exit8 \  u5 p2 y. z4 d) Y

% P7 j6 w. m9 Zif @.arrival_time < EventController.simtime # M8 I' Q7 ~( ]% X
    then 。。。。。。。。
3 A1 e! X$ W$ p5 b0 {/ ?9 ^" @. N" Y& O; B
@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。
% e3 J3 }9 U. u
  h- ]( V7 b4 W6 }) [* [5 D1 G, A1 ~如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。
7 k! O$ ^1 Q+ w2 H' E" m) U* z用一个tablefile,第一列为产生的时间,第二列为产生的个数。
( E  a8 f: O# p- |7 M9 F7 q3 C
4 i7 I% A& t' p程序可以这么写
$ ]- x' [. F: j9 O+ o% t, n% Xwhile i < table.yDim loop4 A6 r) s( y* `* V/ P: h
  wait table[1, i+1] - table[1, i];3 z8 T# N, t+ a
  for j := 1 to table[2, i] loop9 o6 L0 p8 r% j7 J- S+ c1 _' ~
    myMU := ...create(Buffer);+ ]& g' ]; f. V3 ~) Z) Q4 T# E/ Y
  next;$ ]' Y6 X& Q6 [8 Q- [  y- P
  i := i+1;
7 ~$ V7 G8 t% }. V+ }, [end;
# _$ f9 t% S4 |8 o  {
3 ]3 Z& b& d) F" ~& ^/ R* R注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 01:25 , Processed in 0.012093 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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