设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8696|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!7 {" R- I6 ~* k! H4 E
另外Control里有个Pull Control是怎么一回事啊?3 F6 g; q6 Q4 _7 V  H& p
还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好
- f+ c5 r! Z: T8 n! k) P在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即7 J4 j5 d/ _  {3 K/ |% M3 F
is " o7 l  g# D4 D" K4 _
i : integer;
. a) |# S* K" z9 o& j" nobj : object;1 F% F# E4 o( Q: {. I
ta : table[object,datetime];. H. @, [9 ]5 X6 R, D# z; U
do
$ b3 _5 A% @- S( p1 Z( @ta.create;
# W7 d# L& w* T% q4 b" ^  O- ~for i := 1 to buffer.nummu loop
3 I& N8 r" ]/ v% z& p2 y1 {ta[1,i] := buffer.mu(i);; F/ \+ \' i: Q7 J4 m$ k
ta[2,i] := buffer.mu(i).time;6 ~: h; U% k/ Q7 a0 i
next;
* [# m2 r9 ~" ?1 Q8 Eta.sort(2,up);
* s& ?- O  l) F7 k' e) Z6 Qobj := ta[1,1];
8 u2 I% S# J) q: R& y8 Eobj.move(machine);6 T0 s0 x: l: ^, H9 k
end;& ]/ p; D. ?2 N" V& @! ?
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
1 {9 o; G1 z, `1 d嗯,可以不用placebuffer,用buffer比较好7 p$ j# k) G8 ?
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即/ ~4 j, D6 q: i2 u' H6 T
is
/ ^) I* n- u+ G& P' L: J& i3 \5 K7 w; ii : integer;
  Y  S( E% p& ]1 D8 Vobj : object;
& o% m4 ~/ @' |$ ]7 y2 `ta : table[object,dateti ...

& F: R1 D2 O5 [1 O% {非常感谢你的回答啊。
, ^) ~$ \; ?" W; O) z: |! {& Q3 n# N' @这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 ) L( }  ~' [$ J
嗯,可以不用placebuffer,用buffer比较好
: X& ^. o/ a5 r; I在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即& Z( i: y, |0 a/ _/ U
is
; X6 i, ]5 Z0 ~- Y* |i : integer;+ A& V( _3 N+ c% m: r# l9 r6 p7 Y
obj : object;' U$ D, i6 R5 ~
ta : table[object,dateti ...

4 C' X: j9 P  j6 d- B1 c& Yliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。; w* l6 E8 M  T7 ?1 C( S- {
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
2 ~) v% D; }5 B9 X" P嗯,可以不用placebuffer,用buffer比较好/ _$ w& X+ Q6 r7 r1 D
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
1 Z1 C- ^+ X: gis
1 ~2 s. c  a7 I, H; ?8 ]i : integer;$ V6 \. @; W; V9 h. |5 I- X
obj : object;
* Y) ]! `2 d) W* k) H0 T& i& Hta : table[object,dateti ...

$ V8 s( U6 A4 i: r5 f+ j7 I0 X  v( {! A& H, _# q
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。' ]! a4 F# |3 R$ n
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??" p4 M2 A# w( @1 z/ {8 C, L* m; E2 e8 N
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
( G# R$ C3 v& G: E% f- j个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 . T' K: Q6 p9 P
5 y8 f# _% U8 q4 N+ N

; D! @4 f) j. r1 X6 A- C" e我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。; d9 C5 i8 t2 u9 }: O  {
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
3 T1 E' b% k) I0 N* m
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?  L3 A; s  t) s0 |
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
9 q) U, ~; c# N3 z9 u# e: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即/ ^7 g8 {. a/ E+ G$ N0 ]; y
# 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, x+ V; ?, W! S4 k) B
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q6 i; k% B* N5 B- n3 m9 e+ B+ U
obj : object;
5 M& K- @* O$ q" F) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
! K/ H  C) ]- M( R2 D) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo3 Y* \" {4 p) k+ k. n+ H
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
2 {7 k' }3 h# m' Ofor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
9 J, [& D, J0 |2 ^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 i, d9 @8 ^. j% L+ s$ ~+ ota[2,i] := buffer.mu(i).time;
6 n7 }. e% B: t0 Z2 M/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
; L2 m7 d! q6 z1 U8 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( k6 l; d$ r5 p: t( |" R# s
obj := ta[1,1];* A6 ]/ m1 w8 V6 ~7 S, j$ T! P
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);# h( {7 r( p$ B7 }" F
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
3 R, G" V% G, @) A% U' h上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-1 01:37 , Processed in 0.018695 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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