设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8254|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!; n: x) ~3 p' I3 O6 z* K9 a# |7 Q
另外Control里有个Pull Control是怎么一回事啊?5 j) K9 k" Q) L
还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好$ A! h$ o1 P+ @. H/ K- B
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
8 R' R$ q/ r, K! w. l1 Iis & j' R. G6 d8 M2 O5 w+ Z
i : integer;
' T7 ^% }! I' j8 _( l. ^+ jobj : object;! s4 j* f+ ^; v4 ~. T: U3 t; G2 J. R
ta : table[object,datetime];
& E5 U& q/ x2 l+ k3 q9 Q0 V- n  ~do
$ e/ w# \  V  Y- h' O6 e" f0 }" F) dta.create;- I2 M$ j: |3 H6 ^1 r. }
for i := 1 to buffer.nummu loop, {6 N2 |# i5 P9 f  b/ p" ^
ta[1,i] := buffer.mu(i);) Z' e4 N5 l& {- r
ta[2,i] := buffer.mu(i).time;
4 j; H! K8 A( P: E# onext;
. n& M9 C3 j' Z% u9 f, [ta.sort(2,up);7 A" M5 I! u2 }- o& C7 k4 y
obj := ta[1,1];  g/ s% B; b3 u! |& t
obj.move(machine);9 X+ Z) D6 H, ]  d+ T; h6 a3 Y5 p4 }
end;
/ `8 I% N% t/ O4 P上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 # K8 ]- o  e% S( t# h$ R
嗯,可以不用placebuffer,用buffer比较好
3 _" B7 u" m! }+ [6 n1 W在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即, e% d, T0 ]! Y# _) w
is 8 z" l; ~5 Q# I, r+ Z7 W
i : integer;
. c4 z3 ~9 {1 Cobj : object;! p/ H+ |& f8 O* R5 M
ta : table[object,dateti ...
/ Y% L* k2 x1 D* e6 l# T
非常感谢你的回答啊。2 O; a/ [6 b9 Y, z. {& b, D7 U
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 / v) s, F8 h5 v' m* W+ E; f( U$ p; D
嗯,可以不用placebuffer,用buffer比较好; B# S. C7 S3 g9 J9 E# g; w* ?
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
! o% u' I0 t' w$ s9 qis
, Q, }( M3 J0 `  ~. a8 v& g* ai : integer;
, F6 l% Q( Q' p3 U0 m0 gobj : object;2 Z5 M# v$ T. j9 u! i# f; a8 A
ta : table[object,dateti ...

: `. X( K/ N2 U7 H6 R' \liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
1 T! X; m, e- I8 }+ {( D8 n7 ~6 Y请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 " l9 ]& F; i! [& C% w$ w% {5 O
嗯,可以不用placebuffer,用buffer比较好
/ `- @. b7 d/ J% W/ O在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即0 W' v; c0 R, k: Q! s! _% ^
is
5 E. H* \) W& B0 J5 ^i : integer;% ?7 e& [* C& I; K% v6 ^
obj : object;
. j' F/ e% B- |' |1 E/ e& Kta : table[object,dateti ...

- d/ j6 c6 a1 f8 }$ D
* v0 e$ G* x& y9 c! P我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。2 v* u' Q1 x  @& p* @2 d6 o2 x
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??! \7 k7 ~  E  [
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。# i4 [% c5 q: N- T
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
3 L6 h8 p: a+ t* G! t( [* j# S; ~- y; f% x

; ^3 y$ l) M- l+ f% p我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。4 o* `: X  d6 B2 `# g- k# I+ H
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

$ ?/ ^: E# r; p- m% H- F是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
  J( o4 g. o8 _9 ?5 j6 ]感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好' e( f! U3 N; l) o
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
$ [  w) X3 P9 _' q/ w# 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
1 I' q" b' n8 Ii : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q) {+ {3 f) N* `' w1 ?6 c6 c' O
obj : object;5 R# S0 ?. l( v# J" t
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
! u  n6 {, i7 E+ u) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo7 N- h2 \4 T% e( y* B7 A/ d
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m( X9 D$ j& a! H+ A
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
  G8 p4 q: b) Z' Eta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F3 }. C6 j3 X- x" k
ta[2,i] := buffer.mu(i).time;- v4 P. _: B9 ?# M0 P$ U+ q1 h
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
: v9 ?1 o, k( L0 E% {7 B8 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, X# ^" ~* p7 o- ~& c, F( `7 D- s6 x
obj := ta[1,1];
' b" H7 |# ?( F5 o+ C- n: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);; m& q. D+ F$ D# C& ~8 @1 W
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
$ p' Z3 c. L3 p6 F2 d" T3 g; h上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-15 02:25 , Processed in 0.017900 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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