设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8115|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!
1 [- l; W! l! `另外Control里有个Pull Control是怎么一回事啊?
' n9 J2 B; I! E, F* X7 `还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好, A1 {# L) e6 ~3 J
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
5 P5 N( X( K0 o2 j0 @; {* Bis
0 F! {% c0 D4 ~  v  Wi : integer;
5 p9 j/ `( a- M5 u. U& F' |obj : object;7 K' g+ W5 e% y) A  ]2 d, t
ta : table[object,datetime];$ i$ f0 }0 S; ~' }: D
do4 J) j9 Y/ U) s/ \( `, \3 l( i
ta.create;
, B& g  m3 V1 }4 Z7 u) M3 Jfor i := 1 to buffer.nummu loop
( w5 E. a0 j4 e7 d/ n" y; I0 z4 v4 ]2 o! Nta[1,i] := buffer.mu(i);2 B7 ?$ d( G: _6 B# |% f3 F
ta[2,i] := buffer.mu(i).time;
4 e! g' M/ B+ x0 U! m2 F' {next;
4 _/ }; C- A3 R; {ta.sort(2,up);  _" }# ~$ e0 N" u0 m+ Y
obj := ta[1,1];& S4 {( m" @3 G! V$ w: s! H
obj.move(machine);" u7 I  X  V3 Q9 E* m
end;
# d7 d2 [  U9 k+ f0 X3 g8 y" d上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 - c' i( o: [( d4 H' h# S/ q
嗯,可以不用placebuffer,用buffer比较好2 z! E1 ?4 b  s& _* z
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
: S& n/ ?4 q6 kis 0 q9 E) I  P( p. S4 ^
i : integer;  B$ E' n. {& ?
obj : object;! E8 W2 `. J+ {# {! l# z9 g" X# i$ i
ta : table[object,dateti ...

; b, E7 f/ I* {* |非常感谢你的回答啊。
2 ~3 Z6 i& _- ~% U5 |8 u这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 8 t% x3 K0 T, _7 {- J
嗯,可以不用placebuffer,用buffer比较好$ v% b& G  m; E4 {& |
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
" c- _8 r( r% Yis ) Y& g6 K4 D, G( C; i
i : integer;
! D1 g4 |3 y% ?3 F. _2 m7 yobj : object;; |2 O' T# t7 ?
ta : table[object,dateti ...
9 i& P. Y7 d+ Q1 Q
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
1 B- r9 q" P8 o! F请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
4 S4 N: w2 g7 c1 y6 ?% W嗯,可以不用placebuffer,用buffer比较好1 A1 o' Z( n3 T7 ^7 p9 c; |
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
' Q) T7 k2 J+ p, g* n8 Bis ( m. Z9 s8 r- f* s) ]& s0 F: T2 E. O' q! S
i : integer;4 q( I# @  o9 i2 u
obj : object;4 {  g: @: c. g( l
ta : table[object,dateti ...
: M) Q( L4 T9 L4 k& i/ Y7 {4 Y# `, w$ S

" \; q9 f/ M: ^" ^4 Q我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。3 I" I8 Q4 A* w' {& g% N# i
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??9 p! _, L" T4 \! a1 [, m
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
0 M/ U: C7 C# P- g/ }0 Q个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
5 Q4 O$ D4 f, x1 T9 `! z# L' h% d; b" @. T, B9 D

# A, t+ ^' g5 v5 W我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。+ |2 t3 s: S% i' Q
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

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

本版积分规则

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

GMT+8, 2026-2-22 22:58 , Processed in 0.017217 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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