设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5374|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。
/ P3 I% {0 b+ C8 q: ~$ S$ ]$ Y/ a1 [3 u5 x/ Z3 z! v, K  o( I' o
某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。" F2 W: \2 L  U  I5 M. |0 d

2 n* n. p4 y$ k- F4 j! `- r我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。9 ?( Q! X: }) h/ J0 V# o4 v

4 {9 r  Y8 Z+ U3 h( {) E8 [; z如果我使用如下method与buffer的exit
% {0 t* ^! h2 r5 G) t5 @  N
# l4 M7 h/ v- T1 [$ ?* J7 F4 @7 i4 tif @.arrival_time < EventController.simtime
2 P+ X* l8 j1 {+ C( A$ a' ^. M% \    then 。。。。。。。。; T# K; l3 Q  A( y/ v
; t5 w* A8 m/ W" T
@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。
- f1 D" x& Q+ p( ^2 q
+ @' M- m, b: D5 T5 _如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。
" P+ C. y3 i# |' c# E1 d用一个tablefile,第一列为产生的时间,第二列为产生的个数。
: a7 @, w3 b; _: B' C; W
' B. l6 M; Y6 f1 ]/ D程序可以这么写9 \0 ]  J) U" M  `
while i < table.yDim loop
+ \2 v# a$ _5 w  M  wait table[1, i+1] - table[1, i];7 p& j4 k; X. \1 n3 \# t
  for j := 1 to table[2, i] loop
: A* w9 j3 J+ ]. U9 n    myMU := ...create(Buffer);
: l- F4 @6 D  A% C7 z' w  next;; c4 l# P8 R/ |! x# {
  i := i+1;
1 J7 x, ]$ \9 Y3 x1 S) y: t' ]; Xend;
" w! q8 w- }' H$ [  Q& r6 X9 }! T: q; x- h- v! W- E1 c% P" F
注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-11 18:09 , Processed in 0.015219 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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