设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5224|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。, t/ l: g3 }  |2 H
: O9 ?  i( D3 R
某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。* _  J0 v. B$ E( Z. h, Y0 O

) E; o+ o' i  _% ?" x我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。8 Q) u3 N) ~. W' b. ~: p4 Y" O

: j+ S2 R) t+ y+ {1 f4 [  P; J5 q如果我使用如下method与buffer的exit
9 m+ h+ l$ j9 G6 M7 e  O
+ H3 M5 Z! b  @7 S" ^$ k- b+ Mif @.arrival_time < EventController.simtime + J- y/ i, y$ \' T/ m& l+ ^4 S2 [$ M! ]
    then 。。。。。。。。3 _! v. S; V8 S: H& |. \

6 j- D1 _, y) h2 x3 e4 Z# s@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。
" ^7 D- D1 T  N/ \) V
- G. L: }, u1 d, T如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。
. d4 }* \/ L. j. R3 r: J用一个tablefile,第一列为产生的时间,第二列为产生的个数。6 y3 D# l2 D# a" t% O, P* q

& B# {/ N8 t# U  @! k: F- F7 w7 [程序可以这么写9 q8 {! i' e- B- e5 r! W" n3 p. h
while i < table.yDim loop- ^7 P* o9 w& p) {$ `
  wait table[1, i+1] - table[1, i];# [1 `' f& ]3 _3 Y
  for j := 1 to table[2, i] loop, ]5 h5 T3 f2 z! K/ u6 C
    myMU := ...create(Buffer);
! G! u4 _" Q+ ^: Q9 r9 y+ b) X7 n  next;4 Z6 V& m- f1 i7 i" Q' O' W
  i := i+1;/ Q" X' t6 ^6 c7 }: p
end;
9 Y7 M0 G4 S2 ]
& o  |$ ]$ ~, _7 D! W4 y2 F注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-2 04:08 , Processed in 0.022459 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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