设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8223|回复: 6

[求助] 调度优先级

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

最佳答案

查看完整内容

嗯,可以不用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比较好
* |% f8 w* ^" {. H在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
' d' n( N% i% r; Q8 d% Sis ' t7 ], N8 p( b3 A
i : integer;6 u* o6 E2 H0 I7 i& D4 _/ m0 ^# w
obj : object;
( l! C" y3 D' ?, [4 j# I- J7 Xta : table[object,datetime];! q% w6 j' F9 [" x
do
& C8 ~! ~9 t7 ~! F; Zta.create;
4 D9 _  v; M6 r; n/ r+ q7 A0 tfor i := 1 to buffer.nummu loop
! _" D: E. l7 `3 B2 Z, sta[1,i] := buffer.mu(i);( b& H: S0 T5 L
ta[2,i] := buffer.mu(i).time;% O" ~/ k& C) K( k
next;% k+ z% W5 s& D& t5 }
ta.sort(2,up);! K8 v& {* X. {8 u- v
obj := ta[1,1];
4 e% j" o; e5 F; \7 Qobj.move(machine);# C, }5 c9 P0 ~* V; H! P$ Q
end;  V  A3 n5 O, Y' L$ b# k2 W
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
; r( R6 S6 t% ~, e3 g# b" x+ E9 W嗯,可以不用placebuffer,用buffer比较好
/ ~* z4 F& p  y' w1 \在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即1 H' D( Y% O! W: o
is
7 |! N& l/ |/ H) U0 ^7 t: di : integer;2 D( Z% ~* k; r: \
obj : object;
* Y# d! `6 @! v8 q6 B4 R5 p. Cta : table[object,dateti ...
% P( C# W; e: B9 n' B& ^/ i' d" ^
非常感谢你的回答啊。. a! s; k+ O9 J6 a) r/ E
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 " P$ k( \# f0 v5 f
嗯,可以不用placebuffer,用buffer比较好( i- r. y: C+ B7 I  ]2 L
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即8 T. g8 `! W. ]! D( ~& e5 A
is
5 w) R7 F- r: X* l6 {i : integer;
" w; r% }( @2 hobj : object;- `+ [* l) `- u! s9 H: W
ta : table[object,dateti ...

0 S. f# o2 q/ ~+ C: \2 jliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
+ D7 ]; o9 y. H! c. x/ ?请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 & Z9 L9 e0 G$ V: q% c8 h! I
嗯,可以不用placebuffer,用buffer比较好
8 c0 e6 Z+ v+ r" _. b. ^+ H* a在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即0 O% ^- j  x5 c+ o  I1 @
is
% W! m0 [* F1 x: F' Hi : integer;
+ k+ R. Z6 @2 Jobj : object;, j- i! q7 }" `3 [
ta : table[object,dateti ...

% q  z6 r5 @7 E9 w% H3 D3 V2 r! z3 a) v& I
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
) ^. E" U7 }9 f7 ]( `0 W3 u7 H* L2 i1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
, C0 X6 ?$ |+ I+ Q8 O2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
% h  k, W5 Y% X6 w& m个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 " L/ G, F6 y( I4 |0 y' U2 O

9 m; ]" i0 Y$ O) A, W+ T* M  w' C, ]# n1 z3 U$ k. N
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
7 `3 \" }3 s  [' v+ w/ \1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
! D6 z# I7 G' G  q6 h; H4 w, B: d
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?( z7 j8 m& V2 q: p$ B  d
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
! S5 l$ |/ m/ \5 t# D: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即7 C0 s4 s- u: U' _# a' {& Y
# 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
% |  L' ?& z1 d2 ^i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q0 G2 E6 [6 C. e* _2 o
obj : object;$ J7 b. f, m  n$ B
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];: Y' q$ K' R- k: p7 F, u
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo# }+ W: N+ ^, C8 o
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m; w; n* a* R- R& ]9 P
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
! D) m! ~0 g: `8 P1 |ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F; F  w3 K& S  s, B* D3 \9 N
ta[2,i] := buffer.mu(i).time;
( Y5 |6 H& w& \( a1 s/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;1 p( H9 Y4 w3 W! @) O# V
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, X
" O2 f& k$ r) V) Q& y/ ]obj := ta[1,1];
# p& W( b' e" L( _+ J9 Z1 `/ G: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
0 }1 @, ~* G1 Z( ~* d1 O; G4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J9 i) f# v: a1 ^9 U
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-11 09:04 , Processed in 0.025591 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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