设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8076|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!3 b# u) l: m$ \' w7 q; `; w  r
另外Control里有个Pull Control是怎么一回事啊?
& n/ d$ `6 k8 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比较好
+ ]" s0 G: a2 T! v# |" ]在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
9 B; r4 S/ [2 a: M6 d2 U! Q# Kis 6 \- O3 Z5 s$ s1 K9 i& h' k; F& I
i : integer;
; Y1 S5 q" [  ?2 U0 l3 z1 dobj : object;
8 X& ?) [. |# _% p$ k, vta : table[object,datetime];
* [9 o8 A9 o3 @$ R; T4 Udo1 N8 g2 W$ r( O- n9 Y
ta.create;" \/ M* {1 @4 `. y" a4 ?' S% j
for i := 1 to buffer.nummu loop! w- s' a# K8 R' [# S
ta[1,i] := buffer.mu(i);9 K9 F  A  _. S$ q6 R# _
ta[2,i] := buffer.mu(i).time;& c# L& t$ A- l' t$ _) H5 S) P
next;* i' x/ }% v8 H% K" K4 ?
ta.sort(2,up);
+ {) }- e' f0 l! vobj := ta[1,1];( T* _$ P) r: G; y7 Z, t6 z
obj.move(machine);0 o  Z# U5 I5 U: @4 R& n/ V! d' }9 |
end;9 w4 U4 v! s& m
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表   [" W& E: k% M  |, {; }  w( G
嗯,可以不用placebuffer,用buffer比较好$ v& x+ r$ d5 K& G% o) Q; b
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即) t5 _$ c6 u# G6 e9 I( }
is 1 @/ B% E. m2 C! `# Q
i : integer;
8 Y/ `4 ?3 B  eobj : object;/ I9 P  C- [" k. l; K
ta : table[object,dateti ...
, X! }5 F8 M+ P" y
非常感谢你的回答啊。- H+ L0 n% W2 w  d2 N
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 ' P. u2 ~+ @; u3 A2 ]' B
嗯,可以不用placebuffer,用buffer比较好, T, y2 G/ m1 x
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
( `4 R6 x- o  y1 Pis 3 H, ]& B- u: ^/ f$ I8 i
i : integer;
* B& F9 X1 `6 h# i$ h& l- Fobj : object;: O2 b) M9 }6 f6 w# G! O7 o" _# M
ta : table[object,dateti ...

5 s/ i) s) f4 H- Y8 T' Y6 ^liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
* f3 J  C! d* j9 P8 G* o" s请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 ) F$ \5 Z  C9 @
嗯,可以不用placebuffer,用buffer比较好# ?& [8 I, q& k0 |; ^
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
; F6 g6 [- I+ n$ @; W* qis 9 Y( g$ P  v0 F  T3 r
i : integer;) C- U* s( v4 m3 y4 g
obj : object;
5 a* N/ w7 }( x$ a3 bta : table[object,dateti ...

* N( }# R3 i$ _+ P9 t
$ Z7 d$ X5 {1 b我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
  P# T' U6 J5 l5 f7 Y7 f1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??. U7 K! `! M6 ]
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。6 t/ z+ k3 i4 d; m& E9 [6 A# _2 [
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
. h$ g/ F8 P  {: p5 l4 L
# A3 Y& w" E. n9 s
# r' u: K" P4 Y: I) M$ g; ^9 d我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
. J* C  b8 \+ N: H* K2 s: x* ?+ f1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
1 ]0 T% O2 H7 w6 j1 q" _
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
) R& s1 f+ B- d4 P* L4 G& f感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
% z% V" }! D2 X: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即8 Q3 H5 T! |' X0 C5 a0 S+ N
# 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) v1 W5 Q% X& ~' M  ?8 |& [
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
- b2 R* J' o/ z7 P- M' ^  N0 ^obj : object;
* K5 R1 Q% T2 ?: d, P: s) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];% r% D9 E% l4 S- z5 |
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo( E- o# Q$ `1 j2 d
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
* y; ^, [& w6 r+ a3 pfor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T8 r' P! h7 y2 O3 A$ {
ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
9 V3 _* U/ ?, P; ]9 E$ }ta[2,i] := buffer.mu(i).time;
6 s/ Z8 _0 a9 A- |2 [3 L/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
6 T0 `" H1 }/ j% R' r4 \+ {0 B- W8 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
/ y6 O! |! {7 \: W6 G% p: ~obj := ta[1,1];
& L2 e( o, }; l. e: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);1 g; B$ P- K. ]* O8 v' b# ]
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
" u, g. v8 g/ |6 o; \  u3 Q上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-16 17:40 , Processed in 0.017542 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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