设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7610|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!
" p) J% _6 v% K' t, z' F另外Control里有个Pull Control是怎么一回事啊?! _$ Y5 }8 h  q9 Q; l; i; b
还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用placebuffer,用buffer比较好 在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即 is i : integer; obj : object; ta : table[object,datetime]; do ta.create; for i := 1 to buffer.nummu loop ta[1,i] := buffer.mu(i); ta[2,i] := buffer.mu(i).time; next; ta.sort(2,up); obj := ta[1,1]; obj.move(machine); end; 上面所提及的buffer.mu ...
发表于 2009-5-25 15:05:19 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好0 R& [6 J2 |: I1 V9 Y
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
8 _) [$ \$ C2 T# e& v  Lis
& V6 G" ~+ ~2 e6 V; Ti : integer;
& d3 V+ a( c. w1 d- X3 l* @obj : object;
4 w+ o$ T' J# A" B( f3 {; I. v* n" G  m/ vta : table[object,datetime];
% q3 |8 e( [) T4 _do
5 Q. r3 ?: T5 k! bta.create;
7 y- D, \9 p5 I" i* J& E( Pfor i := 1 to buffer.nummu loop
  T, k0 S7 W& Z* F3 o$ lta[1,i] := buffer.mu(i);1 ]2 ]0 O, Y8 D, P8 D$ m2 e
ta[2,i] := buffer.mu(i).time;
% m9 s: ]2 w% X! dnext;6 @$ S% w$ V/ s! N* `# u
ta.sort(2,up);
2 K! l5 z! ]: l) D2 x/ L" L; ?- L% t6 mobj := ta[1,1];
! H; u! C8 F3 a# [obj.move(machine);, F  s! U# a  O" ?
end;' p( e: }3 [# N( _' C9 F* F$ j
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
' D" F  j& |9 `嗯,可以不用placebuffer,用buffer比较好
5 M9 K' v4 F6 s在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
, N+ P" [5 I* w$ `is   }% u9 |0 J" [% ^
i : integer;/ J/ R8 ~# v4 H: |3 k
obj : object;
$ J& F! n* G3 e6 V. a( r, L& mta : table[object,dateti ...
" _- Z  X% D- D8 G
非常感谢你的回答啊。
9 Y8 l. M2 ^8 A! F% e# b1 @这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 & u# I, d! }+ _  [- X
嗯,可以不用placebuffer,用buffer比较好* |6 G+ t" ^+ x7 ?  g, G$ j
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
/ U6 [( ^7 _. D  ois : g9 }7 F/ N3 _1 N0 W  f  _
i : integer;) m% O8 v$ w( V+ B" I/ R7 O
obj : object;0 t# Y& g0 m/ a2 W; G' b4 }/ A3 x
ta : table[object,dateti ...

( q) V: n. V: h( U5 Dliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。% o' \4 X* t% o) s9 C; u8 p. i+ L
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 ! A  y' C3 C6 Q. C, x* G, x: Y
嗯,可以不用placebuffer,用buffer比较好- [' K5 v, I8 U2 g! u) H# }
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即5 x4 \4 A1 D9 `" j) G. o
is
/ p5 w4 \5 W3 T' |. \3 Y. q& Gi : integer;) b# C- N1 J: P9 B
obj : object;8 l$ e3 P  ~% k2 g. y3 N
ta : table[object,dateti ...

) D- g" a& \  `! E* p# P& m& }
, N; O& U2 K7 [% W! H我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
" P* u0 _; E, l. B1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??# q; T: R5 C/ z
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。1 L* u! P- |5 g$ [$ e
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 * s' b1 S" B0 l7 t/ b" Z

9 z/ q: \6 [+ F" v1 h. \; F1 g0 r6 R& T3 J
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
+ E2 n8 ~. I& ]' u1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

/ M' P! q) K! A2 A是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
$ C5 ~! \/ X) S& k感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好2 T6 E. R. A$ M. c& z/ P$ m
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
$ b/ I5 L0 K3 n6 Z2 @, @8 K- r# u: S6 {' U6 S" T3 s) Twww.simulway.comis 仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast- _  S8 P! A6 X  Z; `2 R  c
9 g/ H  ]* {& xi : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q; W1 l/ A9 x& n. N8 Y
obj : object;. L9 |4 q0 e( L* u7 @& V, I
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
+ e1 s( l$ P0 ~' \/ Y1 K* b, Z) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo3 B0 n$ O5 ?  q# N5 X0 {+ E' m
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
" P$ t( N" ?+ e* o7 a: n, Sfor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
, A: L* _$ T* H2 dta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F, ^$ T' h9 c; G( w* `- C) Y$ s6 b
ta[2,i] := buffer.mu(i).time;
" j9 _) V! W: J! t/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;. {) {6 ~/ v0 {) y
8 n* ~4 i) V, P, P/ H仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastta.sort(2,up);/ j* v5 ^! h2 _. q3 K/ p, X1 u( O: b, h5 \$ p& L1 J5 q' B* u
obj := ta[1,1];5 H( F" x4 V5 l
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
0 P8 O  k' w3 \8 T# q6 [4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
: ]5 W) H: L3 I9 E+ H( B上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-19 16:04 , Processed in 0.025474 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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