设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4151|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。3 a* k8 ]* H! k5 i) f  s/ [

$ g1 W0 t$ G2 U. ~* b( p5 M某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。! V  @  Z) g# B5 B1 t. M& b( H

( ~; b. d- @6 H% S7 W& i/ P( {我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。  r  u' O5 [7 E' u& Q  Y+ B% D
, t* Y, f& S8 S8 z8 h5 m7 q
如果我使用如下method与buffer的exit) k4 U5 o6 Y9 n: ?( E4 P; n

* m4 ]5 R- {* T$ H7 N/ o* l6 Kif @.arrival_time < EventController.simtime , B3 ]$ {: T( \3 @' X- d3 F& e  f0 p% d
    then 。。。。。。。。
9 ~& w  ~; e5 w; i9 ^5 h
$ U4 ~! }4 r4 }8 i: L@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。) \( R" T( g+ M6 F( l2 z
  e2 @5 p. X% u1 ]8 ?
如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。
, i3 R) l* J. C0 m* l1 Q用一个tablefile,第一列为产生的时间,第二列为产生的个数。
3 o* E6 u+ Y7 y" l! u$ S# e" Y
0 S! p7 C1 u) t程序可以这么写
  d! G: `3 [) W7 E" a. rwhile i < table.yDim loop
4 d6 B8 q6 e# P3 c; o  wait table[1, i+1] - table[1, i];
/ u" x! z% g. n2 K5 t  for j := 1 to table[2, i] loop: m& G0 N. X) x7 z( `' ?  F, i
    myMU := ...create(Buffer);
  G+ l3 \# Q# M& i; |- g  next;, {3 |: l! W; U4 m7 Q" ~0 g+ S2 g
  i := i+1;
- u& x* b3 x4 {. k5 g7 ~. hend;- n" F9 l1 @$ v5 L

! o3 |1 u) y+ J# R2 N  e注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-23 21:26 , Processed in 0.015599 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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