设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7994|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!
* M/ n( T. A7 \; f5 x" h. r  T* \1 V! W另外Control里有个Pull Control是怎么一回事啊?
+ ^9 z1 B& }6 H6 i( t; ]+ 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比较好
0 o, t5 n  I2 l. u; W4 ~, l/ x在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
1 }5 B8 F! J% J3 T. ~. B$ W/ Lis
& o6 O- e/ l) Y$ |* e2 k, Ei : integer;
$ h7 `- y& [( Dobj : object;
+ L2 j1 R. G% R6 s$ Uta : table[object,datetime];+ P, s$ \5 `0 q* _
do
$ Q0 _7 }* M2 G& d4 [+ B2 Cta.create;
7 N5 _) D& S; I/ _) Dfor i := 1 to buffer.nummu loop$ ]/ D) p& B- k! O7 V* L
ta[1,i] := buffer.mu(i);/ W' C5 x8 ?+ m3 x; _: y" u8 j# h
ta[2,i] := buffer.mu(i).time;6 \6 h; |0 m7 T3 ]1 W) B
next;
+ l8 V/ C9 v$ |* c8 tta.sort(2,up);4 l9 ]* D9 m9 T, ^& f$ |
obj := ta[1,1];
( l: k' D! H( u# M! Z+ ?/ Pobj.move(machine);
( h$ O( R! Q/ c  I3 iend;
% _# f' @* G/ r9 H上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 0 h( f( H4 C& L3 Q% ?6 S2 [! N
嗯,可以不用placebuffer,用buffer比较好- ~) i; t( j. X/ _* D2 F% F' `
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即) k: z9 |. A; V0 S0 S$ e
is   i4 g  h) C+ y4 H( \' g
i : integer;
+ e$ B/ `2 X$ w' |) [8 m: pobj : object;  E8 u( C& |$ D
ta : table[object,dateti ...

) [( [! V4 @7 [. h非常感谢你的回答啊。* c, V. P8 ]" C8 |$ l
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
! s4 t+ E. Q9 E2 v7 }" y# u$ w嗯,可以不用placebuffer,用buffer比较好
) n: [% n0 L0 L3 `/ o: ^在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
  {$ }8 d( V- ]4 J0 d( iis 3 S& H; k& j# p; |
i : integer;- D, I& F; U% I) r$ S
obj : object;% C$ v& I4 t  v
ta : table[object,dateti ...
  o: x  W/ j/ ]
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
4 e( w: o" W# u' r请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 8 b2 o2 a' `7 t' y
嗯,可以不用placebuffer,用buffer比较好
7 Y- n% C8 S2 G+ d' ?5 O9 d在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
$ I# d  n# l3 x; F: }is
9 x0 d8 `* I9 \/ v4 _' g1 k9 Xi : integer;+ f% o& r$ a8 b# _; E" v* \% ]/ j5 \2 ~+ o
obj : object;
2 B: [3 O$ q2 r2 |/ [" m9 [0 Tta : table[object,dateti ...

! m& m7 r( v: a; N# _7 ^# N/ h' M) L- ^# M
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。8 ^" c8 V: n; |
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
  f* r7 u) M7 T+ {2 n' R, W8 @2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
  n. S" l1 h5 C8 k+ J个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 " x% r" v; e+ H* V- T

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

本版积分规则

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

GMT+8, 2026-2-3 11:57 , Processed in 0.018394 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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