设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7575|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!8 ^: {! @3 N- U5 M
另外Control里有个Pull Control是怎么一回事啊?
7 [* M3 l  N3 e! o- `* w) S+ h: R( H还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好
" v$ j  G. B5 g1 E在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
) R3 ~; H! V) u! k) i; wis
, o& o" y! K* r+ t6 Ii : integer;
; m9 k$ S5 V' E4 a# Jobj : object;/ X  m, m0 F4 y& e* k
ta : table[object,datetime];
5 p# i3 {4 ], d. `$ C4 H+ y& ado& `2 t) E" s- l, L" o4 o+ k
ta.create;9 k8 h$ L/ d9 N6 a5 x
for i := 1 to buffer.nummu loop+ m% j  x+ Y0 w6 h$ u
ta[1,i] := buffer.mu(i);
4 s4 }. b2 E" B/ V) Z5 C9 |; pta[2,i] := buffer.mu(i).time;
* y% q* H1 N& _- V8 W5 V. Jnext;
9 B! _/ f5 J! @# C" `8 pta.sort(2,up);  W5 k; y* N$ D2 B! R
obj := ta[1,1];8 s# x9 Q+ R( c4 g* q/ f4 G
obj.move(machine);8 n9 S! M- P6 V) \9 P( t
end;8 t- y: `0 e3 M- ], ]
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 - ~; i, U* ~" v' f2 Q! x! m
嗯,可以不用placebuffer,用buffer比较好. H# V5 E  Y( `/ }: R$ V' O) C
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
4 m" A, [: N" l7 y* c+ L1 [, Iis
  ~8 u* W7 k, y' ~  w5 a7 ei : integer;1 J1 t/ F0 W* r& _' j$ A
obj : object;
. v5 Q, B8 Q! F& q2 s+ Bta : table[object,dateti ...

  }/ `% i! s, ^# O) r, z0 t非常感谢你的回答啊。
/ t, H: ^6 E( n, r$ [这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 " N6 W9 k9 ?8 X0 S6 y+ z6 o( _
嗯,可以不用placebuffer,用buffer比较好
. u" t+ R5 q( i# g3 w在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即% \  x: [# l% E% x2 s4 V
is
. I3 V0 p% O& b- ^% I* ~# ti : integer;
4 v- d9 L5 Q: y% r& V5 n9 d( Robj : object;
+ Q; y2 s2 H, O' H) r  ?# Ita : table[object,dateti ...
% I) o* W2 T$ {6 p7 e0 R
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。/ b- ~7 D3 P: T4 b' k0 s/ Q2 Q
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
( n4 Z/ f3 w$ K% D2 r嗯,可以不用placebuffer,用buffer比较好
" H) T0 Q9 x2 j4 [% X2 |在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即2 B* t$ z1 l( @4 \' C
is
$ e( F4 K3 P/ Pi : integer;- k6 X, q6 ?  D3 k9 y2 `
obj : object;7 H  r: _) {) A6 p) d9 u
ta : table[object,dateti ...
9 E: t* m) r: \! V0 [# `

( W) m4 b; g9 S- G* q) m我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。8 r# P4 ~; ~& Q
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??+ U% E4 S8 @3 x# ]+ o9 a* t
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
9 ]# T% o. j* v+ S" L# x! ]- t个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 + v( s( ?. B' k
# U, r( c6 U: n# s7 |4 Q: e9 c0 z7 o
' B5 Z* ~# S  Y7 V
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
+ K& u, ]; D4 x/ C4 e: b( I4 V$ P4 F1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

7 @/ H) L/ {3 z+ v  _是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
6 V- t) i0 K5 t1 e感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好) x: ?* F, m% \9 ~7 U& O
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
. q( p2 v! ^- G2 c5 M8 A2 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. h( y# u/ V$ T/ x# h1 v
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
1 m9 P9 z7 {' E% Y9 G8 w+ wobj : object;
) p* D6 a. x! ^2 q- K# ]) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
$ v9 |1 Q! U6 l% a) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo2 w0 a5 C1 ]' O6 G$ o
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m# p; M& o/ c+ I2 U, b: |/ p& B: ?7 y0 d
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
5 v2 T' p: D8 m" h5 `4 r. Fta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
/ J' w  d; H8 v9 e- |ta[2,i] := buffer.mu(i).time;  T# A9 D8 h: A4 ?$ b
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;$ R5 n2 @3 v; s& c. k
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
* f. H5 B5 U! A! r6 p" z" f* dobj := ta[1,1];
" D- x" f3 a5 A; W2 B$ U: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);' g4 c: u! d6 W4 w! {6 g' t
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
' U& y9 S0 m" x  O- n! E7 i/ U上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-13 19:04 , Processed in 0.019837 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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