设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4121|回复: 3

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

[复制链接]
发表于 2010-2-2 12:03:24 | 显示全部楼层 |阅读模式
初学em-plant,要求做一个模型。现在遇到了问题,求高手不吝赐教。
8 y8 u  \* X  i! ]1 a  O
* H5 v0 m. D/ {1 H8 w5 E, H; Y某生产车间根据订单生产。订单到达的日期可从table中读取。每笔订单会要求多件产品,各订单可能要求在不同的流水线上生产不同的产品。
6 [0 I1 R  H& n' o0 u7 B% v
0 k  h4 U0 b) D6 }7 c* y! I9 J3 o我现在考虑在source里产生大量的MU,同时每个MU读取table中的订单到达日期。MU从source出来后移至一buffer,在buffer中判断该MU下步该去哪个机器。同时,首先需要判断目前的模拟时间是否已经超过了订单抵达的时间。这是最重要的,这样才能与实际情况相符,即先订单后生产。
9 ]& W- J9 @+ t4 N  F- E' R& `$ v1 G8 q; J9 ^
如果我使用如下method与buffer的exit
' ]( Y+ a5 c" m. ^& j1 Y5 U; m( W( Q& b. u/ o2 j; S
if @.arrival_time < EventController.simtime
5 o+ J& s7 J2 O, ]% Z4 r    then 。。。。。。。。
  E6 w: B4 Z$ p8 r" D6 T- {
2 l$ F9 Z* |+ ~- q6 g8 {9 ]@.arrival_time为MU的属性,在source中已从table读取,每个MU有各自的订单抵达时间(可能相同,即属同一订单)。此语句仅在buffer中判断一次,其后任凭新的MU进入,也不再判断。- B! c% Z- f& E6 O+ |/ y

6 Z! O& P7 \( G4 ^5 k如何使得buffer可以不停判断其中包含的所有MU,并且选择符合条件的运出?
 楼主| 发表于 2010-2-2 13:28:37 | 显示全部楼层
如何不按照先进先出的原则使Mu退出proc?
发表于 2010-2-4 00:26:41 | 显示全部楼层
自己编一个程序,该程序由Init调用。" h7 F, [( Z' S3 X0 \$ \  Z( H
用一个tablefile,第一列为产生的时间,第二列为产生的个数。
- }1 d; o7 g$ O+ _; L% U5 w2 Z6 }4 T% W
程序可以这么写
! |* N1 }* `3 l: X1 N, J& Jwhile i < table.yDim loop# b- L8 J' ]# Z
  wait table[1, i+1] - table[1, i];- s' A2 [" [% C: u# s$ n' Y
  for j := 1 to table[2, i] loop
; {( m5 I/ \8 G3 n2 l    myMU := ...create(Buffer);
) @4 K, S2 V, o3 `3 z7 S# H  next;" s( D! a' y# B
  i := i+1;
( O$ d) f+ W& Bend;' y. E5 X6 \8 e, F9 x* M

% X0 S' h9 C3 e9 Z" U( e3 k$ w8 q注意,Buffer设置无穷大。
 楼主| 发表于 2010-2-7 10:39:28 | 显示全部楼层
感谢楼上的帮助。应该可行,我去试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-16 18:02 , Processed in 0.017844 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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