设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9017|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!9 Q% B% F2 G3 V  M
另外Control里有个Pull Control是怎么一回事啊?  z: f8 |! ~/ B9 O' ?5 r
还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好+ T" {: i' h5 j) d9 e
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
$ \+ V4 s0 A/ o! S1 o, H7 mis * z4 n4 E8 q& Q" r
i : integer;7 H& R" r" j( H1 o9 r2 Z
obj : object;
5 \# A. d7 u9 i6 Q, O* ita : table[object,datetime];/ x- q) O2 B8 Z* }; a' y# T
do
6 F* X, {, |' H! i) x) W0 Ota.create;
3 t# B" X2 I$ Q5 ]8 a* H) y. ffor i := 1 to buffer.nummu loop
! h/ L4 U/ c  \9 v$ b' hta[1,i] := buffer.mu(i);5 K- k; Y( [2 K  J1 T1 y9 F; x
ta[2,i] := buffer.mu(i).time;4 C( x1 W' a0 ]1 D5 C% O. M% v
next;
" Z9 i1 R  j9 r) g2 Y  hta.sort(2,up);- ~" w# ~  w) b6 d! ^. k/ B
obj := ta[1,1];$ t5 _( y' d/ {' v: i& U3 E
obj.move(machine);  M; B8 _3 F; t& J; J
end;
. @, M2 s; @6 \' J1 r5 v上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 , @$ `3 x1 Y6 e- H' t
嗯,可以不用placebuffer,用buffer比较好# d- O- s6 ~& G2 }2 ?. O
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即: k6 |3 q7 L" I1 l
is , b9 m2 v8 i, J4 p3 z
i : integer;% M% \# U, T% a
obj : object;
  X" c5 G! ~/ p& n1 dta : table[object,dateti ...
& M2 M% e2 z# n! r' [8 w. h
非常感谢你的回答啊。* ^) @8 d9 x7 R$ i2 G. G
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
5 L& _5 O( R% ?! V6 @嗯,可以不用placebuffer,用buffer比较好
& ?) `3 Y2 W6 X  w5 y在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
( m! Y: q+ s3 c4 H5 dis
# n. v1 h. |' z2 Wi : integer;
+ x6 O7 R( _) k( h0 G- @obj : object;" l2 e' K) {# v) J, x9 X
ta : table[object,dateti ...
2 b6 Y$ \" L% E. y' T) l! S  k. E
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
' m, v- P6 C" Y" d+ L( @请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
& N; U9 F/ V8 R: X嗯,可以不用placebuffer,用buffer比较好
: N) O1 |/ X7 b, c5 ^0 S在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即2 W/ t, L! ]% q/ b4 c
is ! k# t$ L" N9 S# D* U+ s9 M+ c
i : integer;3 w3 ~8 d& W$ H) R0 m8 s
obj : object;, N( @2 L0 h# W
ta : table[object,dateti ...
- q+ |2 W/ \2 h4 Q! b

" S9 K& j2 B3 W9 _我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
& I9 |1 |9 w2 p9 n1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??% G! U2 k  |0 J) C/ m: ]
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
: \: d9 y- e4 p' X2 ~个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
& r0 ~# W% M' G( J
( g; Y! e1 Y/ _4 N6 |4 z6 I3 c5 ]7 J* b% n; G
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
6 n1 w8 l4 a! R) b1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

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

本版积分规则

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

GMT+8, 2026-7-14 15:33 , Processed in 0.019395 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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