设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8180|回复: 6

[求助] 调度优先级

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

最佳答案

查看完整内容

嗯,可以不用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比较好
5 x$ g6 H: X2 `1 s+ m" x8 L在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即( Z) G$ `" Y9 ~; ~- P6 {% }
is
* V$ \7 w7 B' Zi : integer;
4 p$ @! w; {  m7 lobj : object;2 j! }0 v$ x! W- B( ^5 p" q/ h: q
ta : table[object,datetime];' h5 P  i' z! `% c' h
do: S, L  x% y* Q( u
ta.create;
. I4 x0 T, j7 z2 dfor i := 1 to buffer.nummu loop
* }% _) S" I0 W/ kta[1,i] := buffer.mu(i);- R& S* w, ^- U: N( }( x1 u/ M
ta[2,i] := buffer.mu(i).time;
" |2 m' Y) P( X0 u/ p% g9 Pnext;
4 M: ]% }, s" t2 {# Z+ f2 f# eta.sort(2,up);6 ~5 ?. T0 N$ d1 p' B- C
obj := ta[1,1];
3 _' ^: S" Q$ O: hobj.move(machine);+ B2 Z# ?  z$ p
end;* b9 H( S2 I" k4 L: G. j) E
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 0 k, G3 w- J8 U* W. n
嗯,可以不用placebuffer,用buffer比较好
" ?% N( \, F9 _5 O$ B9 G: d3 S8 C* ^在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即( u& C3 \  W& h, ^/ t4 Y
is 1 A4 S4 P, ~* y$ z9 h8 f  x$ u  W
i : integer;
. p7 A5 ?- L- Zobj : object;1 l# Y( D( i* Q( G3 q
ta : table[object,dateti ...
& ^9 g! J/ T! J( \1 {& t
非常感谢你的回答啊。8 @5 w( X; I3 a) W$ \2 G( m# _
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 , _2 R+ L7 ~6 j/ d8 P8 Z
嗯,可以不用placebuffer,用buffer比较好
% A/ l! P8 q' g/ x) S) g. W3 r在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
7 l3 i# {+ x; Y, M% H' x6 jis
, T; T8 i' w1 U* D; j  Z: qi : integer;
! R0 {: W0 m8 j( M8 Kobj : object;6 b5 b( v; Y: n" |1 x! v+ {
ta : table[object,dateti ...
4 I5 H1 V; U8 `! j8 K4 V+ \
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。2 @# r; @. ^3 @6 z
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 - T2 V/ V3 o* B' ~" I( ^# ~
嗯,可以不用placebuffer,用buffer比较好3 l. M) @; T4 L! f
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即7 z, H4 B. ?3 r8 I: v4 W  f
is
9 X* P" F5 |9 I7 [; W+ Qi : integer;
5 v* c' W: a* g2 Mobj : object;
8 c/ e7 g' K/ ?6 Sta : table[object,dateti ...
) A+ ~$ [: a3 f/ D# o9 T
% L/ T1 o2 a6 D
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
% ~5 {% \/ t# l8 F9 r8 X1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??# f- X8 k8 V+ y& H3 R& ^
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。) T: @2 K  X* ]. s  f+ m, V
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 ) T9 c( J/ E! d. J6 f, Y9 J- ]  X
: p2 a+ a2 [* y2 ]

4 V' A: e* e$ F: ^, F% U$ K0 y我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
( V$ ], C4 q- l1 n( e( g1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

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

本版积分规则

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

GMT+8, 2026-3-5 22:30 , Processed in 0.018298 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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