设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7929|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!8 A/ h3 J) z+ }# q6 Q7 B
另外Control里有个Pull Control是怎么一回事啊?
7 i* u, ^( k: S$ }8 T) Q还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好& I" Z# T5 A6 O" ?
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即: c1 m; ]/ K+ V, f
is
* U9 A% m+ ^. W* u' Z# g# ei : integer;
1 _( J: X5 C  f3 p; ^  cobj : object;
( t3 Q# w( ~( [0 K& P! X# Mta : table[object,datetime];" f3 W$ U0 g: ?8 H( g( _
do/ ?' J: P8 E: n1 r4 Y2 h% _
ta.create;
  ~9 G! i( x" ?  n- ]6 jfor i := 1 to buffer.nummu loop
, }* U6 M8 M$ _) {/ ~9 W: E+ y7 b3 Ota[1,i] := buffer.mu(i);
( u8 O3 M) y6 }2 Xta[2,i] := buffer.mu(i).time;) ^+ `" \: c0 j" S4 \1 I
next;
4 d0 R2 K" X8 J- i6 z" ^ta.sort(2,up);' [) L0 j4 `& [1 n0 Y) {/ x& ~
obj := ta[1,1];7 C6 Y) W6 Q4 c+ c7 J/ o
obj.move(machine);
2 M' n: }& v& D6 Z. iend;
" R* w# J% z0 U+ |/ ~1 z上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 * S2 _; X% g  t1 E$ V
嗯,可以不用placebuffer,用buffer比较好
' Z1 `% |* F9 y. l) w( `在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即* z% O# c& N5 X' `% u/ C( L
is
: s+ M! V: ?5 _  [6 [i : integer;* ~) Q9 D0 Z5 z1 C0 o" \
obj : object;
0 d; J4 a) m5 J' Ota : table[object,dateti ...

. E4 j# `( W/ M$ k. U. w- v非常感谢你的回答啊。$ _5 @3 @' |) m4 C# D' c: s
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
! e0 K6 K8 `2 h: N8 v  j嗯,可以不用placebuffer,用buffer比较好
1 j: U9 K) j& T# h# z4 S& i( H在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
  |" }, I6 J! n- U2 o4 Qis
, z* y! B) \0 X9 {1 L# fi : integer;
: w# {9 j2 K! F1 ]4 h! f+ ~. e1 P" yobj : object;" \" ?& a- Z. `" s/ h
ta : table[object,dateti ...

2 N2 T& G: X% n' y5 a" L( iliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
. A- y& S/ v* q( B! a请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 ; l  K: J3 ^& w. [& Z
嗯,可以不用placebuffer,用buffer比较好! N* Z" Z: A0 o; O# {
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
+ g# T& ~! f: L2 q& Vis " }% c, J; c/ K" C5 ~
i : integer;7 |; P' T6 m- @! S& F9 L$ B
obj : object;$ D$ x1 `0 U8 p* H0 n! [% {
ta : table[object,dateti ...

7 K- B& Y4 F7 h% e, o) `( ]8 O" w: s9 J) ~; M
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。6 b5 U; U6 |4 j
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
- v1 {% B$ c6 V( G' ~( p+ p2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
5 X! J) C6 h- ~. s4 f个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
8 ~$ T  k6 w! g; p' K- w7 P8 A8 K. ~4 f  ?4 g
7 }5 u. C0 T! o
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。$ ^- C$ a7 f; p5 h6 h$ t8 I0 i. z
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
: `+ K; Y4 K8 ^% b
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?3 S! j' U( j' k& y
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好% r' }3 n% ?; @3 X5 g  w9 ?
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即/ l) ]! P  c$ Z0 ~$ s# D6 `
# 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  c0 |" F8 j9 N, Y
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
3 s( W3 {# k" {& t$ Y1 o3 B* |obj : object;
4 l& I: Z9 K: {6 e+ D( d) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];  H0 @& g+ J: r  Q6 g+ i7 Q
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo6 @+ H7 |& M8 H# O0 B+ R/ z! k8 P
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m" M5 ]' |7 l3 c$ ~( j- o' Z8 L  o
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
5 \0 R/ I/ p; L4 }/ wta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
1 I( ~. ^" J$ _1 ]* Cta[2,i] := buffer.mu(i).time;
/ F' G- b& h5 |' W4 }' u/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
& v- D; x4 n3 N0 e/ C4 Y8 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! ?) }" L2 {4 C' t+ t
obj := ta[1,1];0 F, I, E" \0 J% X) V+ I
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
- }5 W  n- B2 E' }2 v8 ?* H3 R- d( e4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
& ?2 _2 {4 g* H+ i8 ?上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-21 01:26 , Processed in 0.019612 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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