设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7797|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!
6 a# A0 V) h2 r, {/ `; J另外Control里有个Pull Control是怎么一回事啊?
5 B4 j) M9 r. |8 e还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好+ q1 J; A( e1 _9 c( `% _4 h: o2 r
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即, x9 r2 T+ n7 b0 E0 e7 _4 A
is . M7 m* x: h8 d; P5 w. n
i : integer;- x$ _9 j1 Q; N
obj : object;
, Q+ n& h, Q& T' qta : table[object,datetime];7 T0 j: s/ |+ h* y* V- J* @
do
1 ^) u) `4 g. w  \, `ta.create;5 _- g6 N, a% s" j. k- n( U# M) e
for i := 1 to buffer.nummu loop
; R6 k& u5 f0 e# U$ N  F9 f! Nta[1,i] := buffer.mu(i);
2 a! U8 {6 a) J' xta[2,i] := buffer.mu(i).time;
7 g, j. {% ?1 a( a- W0 onext;
$ r! z7 Q: B' p4 D4 v+ R" fta.sort(2,up);+ ?- }7 r6 Y' x- U- s; r9 t
obj := ta[1,1];
5 u1 Z4 e* ?/ `! ]' F( g- Xobj.move(machine);
2 L' d( n/ Z, f0 T0 m- s0 }1 gend;
7 ^' ~: ?# n7 [; T4 s# m* S. ]& U上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 4 C: }0 s0 x5 A/ U8 m7 Z( j
嗯,可以不用placebuffer,用buffer比较好
6 r9 E$ g8 C2 T& e在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
1 ]* _" W: o) b2 |7 S9 J& Nis ) A  Q7 M4 M0 a
i : integer;& t* l' A  C/ x& ]! R
obj : object;
) y, q3 y+ p! q4 c% @- Z0 Mta : table[object,dateti ...

# y5 _7 n/ y/ z( ~* [非常感谢你的回答啊。
  K  [% d% f5 w" ^8 W3 C, j, ?- }这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
0 u2 R' S  F: n2 X嗯,可以不用placebuffer,用buffer比较好
' w! P! G0 K: T  Y0 U在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
8 I% o: E& |: m: g9 jis
9 n8 v, J0 w& j& f7 T  ei : integer;
. q: J  @/ z$ mobj : object;2 e2 u1 N6 [' R" J; `* B
ta : table[object,dateti ...
2 Y& w0 f: m) A
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。9 n! ?$ F' i7 g9 p9 Z+ O
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表   I/ q5 a  h6 ]+ l& J) Z2 r
嗯,可以不用placebuffer,用buffer比较好
9 ?1 s% W9 K8 ~+ Q4 }在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即( @8 r  T  a- L! A4 K4 u8 C$ x
is 4 D; l, A' O7 n( J# h/ N
i : integer;
4 ^. X1 R5 ]/ V  N- \obj : object;
2 F4 W' z8 l$ u3 W: Kta : table[object,dateti ...

7 E; U, \& }, ~" _* h% ]# @4 M& Z0 [
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
: w& o1 ?# S0 z+ A$ k+ H1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??- ?- Q/ }* x4 H- g
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。- a2 s9 |9 @3 f+ `% |/ z( [
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
/ @" i1 y  @0 m! {% q! }5 l/ u9 ]7 b% E- Y
$ p' c( Z- N" f  G5 K. ?) y8 Q6 a
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。; v9 \2 A- V" V2 V, o
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
$ [( H$ c) ~* f0 k
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
6 d; |# q4 _$ E* n感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
8 i* u3 z" J" B+ F1 X0 {& J: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
' \5 A4 i) K1 U; J: a; B% _# 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$ y& N+ B) L, X- B% i
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q3 i* K: G) X; G
obj : object;
0 d. I# x* M/ ^* z6 X) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
. \/ K2 s& c- d6 ~% m- `+ ]: k) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
% o5 Z% D8 S6 x. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m' C) j9 p$ K+ d3 o" G8 C7 J
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
5 _9 K% X( R" `6 X+ L) F7 Qta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F4 U) l: Q+ J  n8 w- r3 y
ta[2,i] := buffer.mu(i).time;& s. X( ?! [1 \# h# k
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;- y9 t. h0 f  S
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, X6 w- U8 [: K- z& `! K
obj := ta[1,1];0 N! Q  W& Z# q: B7 {( w9 Q
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);) ^6 x6 |, `, L% j; v
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
' I% @  u2 z$ v) l* L! r; n+ `$ {上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-25 00:56 , Processed in 0.018748 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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