设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4869|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。- E0 Q* a4 q# B: ~& n9 }! s: t
  z! `- f5 ^4 T( Q4 n3 H9 I
某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。& u- x- u5 E3 E. d* d) v
3 ~' t4 Y8 n6 j4 f/ q8 ?
我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。* W1 z. q* m( K* q0 Y/ C
! h9 K5 r' G( g. S
如果我使用如下method与buffer的exit
. @) y1 y& c* m% k$ q& a: C% p: y5 \' c! V1 o+ r+ y
if @.arrival_time < EventController.simtime
/ \' `! ^) r9 s, z    then 。。。。。。。。
( B* @9 a- l2 f3 X; O
* m* N! e) L' w' M; h3 B@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。
" `1 y4 |, K1 ?$ H2 v
# y& l% t. q  i* j如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。
5 z3 i6 U& c; I# Y; O- r* W用一个tablefile,第一列为产生的时间,第二列为产生的个数。  l0 x! K* r5 g: n% q3 q, P

: Q9 p4 ^  l3 D4 b4 b程序可以这么写# s5 ^- ^' |5 X3 b% k
while i < table.yDim loop$ v6 I- C" m3 f4 a4 u
  wait table[1, i+1] - table[1, i];' V" r1 _! }- J1 R0 K0 w8 [
  for j := 1 to table[2, i] loop
! `/ B" g9 ]) @    myMU := ...create(Buffer);
7 V; a# D  V9 d2 m# M8 t% _  next;
# X4 o0 C" Y1 p0 D4 a0 a# m9 K  i := i+1;
6 z5 t% b3 e0 x# C1 G; l6 vend;
4 ]- j0 Z+ Z3 B# h
; _- A! n( p# b注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-26 08:06 , Processed in 0.020444 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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