设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4835|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。: j! j$ ^3 Q/ Z# d; q( a2 Q- j

- c& l9 w7 X7 s某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。9 y; N+ n  F; j* c+ U

% w0 C5 A0 g8 Z, s6 m我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。+ ~! f# a4 f5 n+ ]" L- {3 v, K

; l$ G: ^$ v8 V1 E8 B. `$ X如果我使用如下method与buffer的exit( z+ a: v/ Y) }( B* Z' U( n+ B8 z
2 x8 H/ M4 S! a4 S
if @.arrival_time < EventController.simtime 0 K  m2 U. o# r9 {. @
    then 。。。。。。。。* J+ u1 u( @( ~1 O$ Z
& g9 `; w( _6 R5 c
@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。
, I: A/ L$ ~8 W9 T: R  \6 o/ e/ M! w8 I! H' O
如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。
  f: L$ Z( J6 q) F1 d( y2 q用一个tablefile,第一列为产生的时间,第二列为产生的个数。
* M$ W" V- w1 \4 P! D- n( N& u3 ?* V5 x2 K& q
程序可以这么写" Y" p/ _. }  D  j; I' P9 m
while i < table.yDim loop+ [) X$ C& j$ y) K% P
  wait table[1, i+1] - table[1, i];
" p) B( i+ N; l4 s. Q( o) q, y  q( _  for j := 1 to table[2, i] loop! `4 G  S$ l# f/ R# a! j& p9 i
    myMU := ...create(Buffer);+ s- M+ Q* a+ @+ F8 d
  next;
% \8 S2 r# t- d) ^; D* ~: i% V$ h  i := i+1;
  p% n% q# M. u1 j3 Z- ?  j$ K5 Oend;
' k' E0 M, t1 Y6 U7 r  [+ m( `' U
3 g! f' F0 H- i6 a$ T( H注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-19 00:25 , Processed in 0.021897 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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