设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8359|回复: 6

[求助] 调度优先级

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

最佳答案

查看完整内容

嗯,可以不用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比较好6 K4 H* L6 E9 w5 z* j6 m: v- Q
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即/ T+ y% j2 C7 Z( ~" |
is
  S) N; l! B0 x3 }2 m/ I& @* F$ Zi : integer;4 z3 O6 F' y! Q  M2 c
obj : object;
5 ]. E; i) u" j' p* V$ \' gta : table[object,datetime];, @- K# ~* F5 k( d- J
do9 N, n$ R" ^5 u, [! _8 e" Y
ta.create;
7 O- a5 W2 ^% Q/ x. C1 ~/ V  Tfor i := 1 to buffer.nummu loop
1 g$ M) H2 k, B, ]ta[1,i] := buffer.mu(i);; l; `$ _9 t1 u1 z2 i; v/ i$ U
ta[2,i] := buffer.mu(i).time;
2 ?6 Z- [' {  rnext;/ n6 l) V4 {9 \$ m1 d2 _
ta.sort(2,up);
2 Y" z# F( n6 O( G$ F$ G7 L: \obj := ta[1,1];5 e" u8 x, Y8 s' Q9 o7 }7 K" Y8 @
obj.move(machine);- x: {% B7 k: w. v' c* i
end;/ f+ N' k$ k* j3 G( c
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表   x3 c$ V+ G& {$ V4 ^0 }0 n
嗯,可以不用placebuffer,用buffer比较好/ z) D% @7 m  K( }. [) A+ @3 u0 @& J
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
2 ~+ |" D& ?/ L' D0 ^+ R2 `0 F& gis
0 @/ @% J( |! ?6 j5 Li : integer;
) o. T3 |, C' w' Oobj : object;2 r" Z, W( \% Y+ ?- A' i, X
ta : table[object,dateti ...
8 @4 s( P% l" Q- k6 z
非常感谢你的回答啊。% }, b  {- Z, I1 i' t: ~8 @
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
" `$ I1 P! F1 ~嗯,可以不用placebuffer,用buffer比较好
8 Q, T4 O1 U% \* N2 P& `* n9 ^+ R在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
; s& U- K) T  Q; S; {is 8 y; w7 f  b$ K& f) \8 R
i : integer;1 M0 }$ G) R% n% U' ^
obj : object;
0 \2 l8 Y# V: Gta : table[object,dateti ...
' ?$ r8 Y) u  J3 i4 d& M: C
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
) _  a; S. ?6 y5 z5 c  @请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 " @) l  `: G/ C6 J5 T' ^
嗯,可以不用placebuffer,用buffer比较好& _0 H3 Q+ x1 J* t; L2 `
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
% l/ I% f! ~" S9 s7 U; g9 qis
* Q- O* W  W% X* N( zi : integer;
  g; X0 i6 S/ o$ |& J; J6 cobj : object;
) ?5 _! E' M3 @2 {6 hta : table[object,dateti ...
! z2 @/ H! v8 L" x  l
1 F1 d2 P4 [- V3 x
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。* y: y1 i& j) A
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??& O% L' a! D/ J- N7 t' ]  ]
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
' y" a# c( C% U& B, E5 D) C个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
- A2 m1 q2 \( f  e" `0 x3 V; G
8 O6 p* d! _3 c- ~* e1 m2 }; e
7 X; q- V: T  F5 z我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。2 S, `( D; x3 M1 [& o4 [
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

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

本版积分规则

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

GMT+8, 2026-4-2 03:27 , Processed in 0.021194 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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