设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5066|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。  D- r  [5 Y' T" X; n
; L/ w9 I1 [* _9 C1 r
某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。
% M3 I+ e4 T3 o7 H# R( m+ d% O4 I% R
我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。
) m% J# E( M4 @2 R
9 i: X7 ]4 T( H5 b- u$ S6 K' |如果我使用如下method与buffer的exit
+ }5 w9 M! Z: M& o4 v
- G8 `9 w* F, @7 W' a. hif @.arrival_time < EventController.simtime 9 ~9 m5 i' g% g* e5 A& K! P& d8 ?6 V
    then 。。。。。。。。
+ w3 T5 W+ i. d2 v8 G) I
! d! P0 c. l0 w- x0 R, k@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。
" F' {2 u0 x* _
' z- ^% h! ^  X4 |0 a  p如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。6 `, u9 P% d7 Y% o; u9 X$ D
用一个tablefile,第一列为产生的时间,第二列为产生的个数。
) ?2 D/ n1 \9 X. m5 z
8 @) m- \% u) F4 i3 e程序可以这么写- |$ J0 j  g' `% e# Y
while i < table.yDim loop! }( N$ ~; ]5 W- X' y
  wait table[1, i+1] - table[1, i];
) `$ {- x1 s' q4 c6 M# H- z  for j := 1 to table[2, i] loop3 r& I+ w& r! Q- D* ^( X  w- a) j( }5 g
    myMU := ...create(Buffer);' ?  E9 K6 `! V
  next;
' M1 z$ M, _; R  i := i+1;
3 I8 E) o$ {# gend;6 `, C( C' d* n1 C4 A, F7 \) q, W

, D4 k. ^  n( `5 t* O9 C: r$ R) D注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-6 18:11 , Processed in 0.016412 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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