设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9615|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!5 P5 @! z* Q& N6 Z# r( Y
另外Control里有个Pull Control是怎么一回事啊?: A& v9 W- k- J) R% s
还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好- @. k/ g  }- m; T: k2 K
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即" o/ a8 _4 }6 @2 B1 t
is
* d* c& G4 i, i3 Q, r) |- j; xi : integer;, r7 A! l3 l/ V# U6 ?
obj : object;3 [: D& z: c3 f
ta : table[object,datetime];
0 O6 q" W- X9 ?5 I/ N4 t1 Kdo- z, q. a% n+ n$ b
ta.create;
0 }# e3 v1 j' S. S9 h9 f6 Dfor i := 1 to buffer.nummu loop
: A" i. S, {+ H- ]ta[1,i] := buffer.mu(i);
4 y4 x: M/ p$ T" V0 zta[2,i] := buffer.mu(i).time;
$ s: R, t& d1 N$ Onext;! |( i2 X$ S. L8 o' I
ta.sort(2,up);
, w* I0 P; F8 Y% A! j2 Sobj := ta[1,1];6 ~& F5 @; ^9 E/ R; f% q1 N
obj.move(machine);
, r. k1 }. G) m$ @# n. U  k/ K, O8 [end;
" M% U; P0 J5 b上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 1 i! d1 ~* u% H& _3 W+ b# h5 j; f
嗯,可以不用placebuffer,用buffer比较好
7 e' A- m+ U* W在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即; U1 y7 H2 |7 h5 j" }8 \
is # [/ G1 z$ D4 h3 w- A4 F+ ?' b
i : integer;
0 \* B+ ^6 b+ }: v* Vobj : object;5 o% f. M3 C7 T9 |" o
ta : table[object,dateti ...
3 z8 [  \" |7 @+ Z+ L8 i
非常感谢你的回答啊。( W( r0 V* K6 a; m0 B
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 ' ?" S" c" z1 r1 Z
嗯,可以不用placebuffer,用buffer比较好
# l8 k- a+ n& d& b+ |9 n在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
/ K8 A0 ~8 s0 H  y& `, D9 g$ }1 h" ^is
) x; Z! H) i% w, Bi : integer;- K! m$ H& i+ m4 V% I- h
obj : object;& i2 G4 d% Y2 c" `$ Q) ~+ {
ta : table[object,dateti ...

2 U+ @$ K1 h0 u  j" P! Vliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
( B" n, V/ H! Y3 Y5 u8 k1 [请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
1 N) p+ P+ V) q& E7 W嗯,可以不用placebuffer,用buffer比较好
* g$ q3 c' _2 y4 {% q& a, G4 J, S在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即' B. G- j+ Y$ G' @, ]: R
is
- @( p% K3 K% ri : integer;
8 C- c4 T4 p" d5 F' @obj : object;, F5 g) h% ~5 T! |! q$ {/ _
ta : table[object,dateti ...
1 ^: }; Y9 ^" C! D) C
( u" w. y  O) E( l; B
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。8 a* G  |' u# F7 ^
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??$ [* ]4 [' E; ?$ \
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
" \4 d) z7 U4 b. u# V个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
2 a3 M% f3 F9 B8 h/ s# p  i# X7 O9 M! q% n6 \6 O% ^
$ v7 {( Q. L$ h$ j6 r
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。8 D; \9 s; j. l# {+ C5 {2 P
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

: E3 U. y3 Z' u- w; p是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
/ P. M4 @% Q5 `  `3 m! _0 }感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
9 ~1 R0 B8 d* X5 Y2 o; t* _: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
# i0 g% Z9 e8 [: @# 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  c4 I  D( D! R* Z0 X" L! p: W
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q( d6 x( H; N( ?0 K2 C0 D
obj : object;* l6 {6 g( u0 B* N
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];, o- R( T0 s: i% p# B3 X
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
; H# [2 P1 [1 b& @. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m. L" @: J, ]7 d
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T  R8 p. b5 m. d4 j! E9 Q% d
ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
" ]( q1 F% N/ G) s, ]( R( N+ R: Eta[2,i] := buffer.mu(i).time;1 N0 |& j& u/ k2 j
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
8 w# t' \4 s) a" l. i! d7 J) m8 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
9 J5 Y. x7 W4 S! I6 s# ?obj := ta[1,1];
5 w  t3 ]7 o* ~0 d9 G1 E; y: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);. k: Y1 ~9 K! m% e- A7 n, H; S4 d
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
  o" P7 ^/ @7 |/ N上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-9 07:50 , Processed in 0.016617 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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