设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8590|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!* F  G& `" l+ X. L8 h, m
另外Control里有个Pull Control是怎么一回事啊?* i2 ]4 H/ t3 o1 Q, ^& R: P! 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比较好; l+ \& u" h/ L, Z) r' \9 b
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
6 ~: i6 K5 y: u) _/ sis " d: w" n; @4 y! }: Z% ~# f
i : integer;$ \7 A- m5 g3 x4 e' t$ ?0 [% l
obj : object;
  D; \+ I+ R4 m! ?% [& V3 b5 vta : table[object,datetime];
! D5 R" c; W: b7 hdo
% H* U9 P4 z0 |& n& wta.create;' s0 C' `) B: C& G. ?
for i := 1 to buffer.nummu loop7 [' d4 [' a$ ^( C' w2 X+ E$ {3 N
ta[1,i] := buffer.mu(i);) d6 e, L; G! f# o1 g5 V2 }
ta[2,i] := buffer.mu(i).time;
7 U$ Z' j  f8 }! f. ?next;( y5 T* N9 }! O9 C" K
ta.sort(2,up);
! K! j- G- S) s  I  r% w; L/ aobj := ta[1,1];
0 |; y7 e( k. Cobj.move(machine);
& n$ f9 j% c2 x0 Mend;% U( z- o, f) A0 B# e6 ~' W
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
; |4 w, D" G7 W6 w8 R- h4 r0 ^: q- |嗯,可以不用placebuffer,用buffer比较好
8 I* T( A1 g" O3 r在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
1 ?+ k# w7 x5 b) Jis
  @/ g' e) A' Pi : integer;
1 M- P% W3 e5 c) Yobj : object;8 k5 \) C# z7 v1 R
ta : table[object,dateti ...
; x( d  w3 }  O' c5 f
非常感谢你的回答啊。
$ m0 e# }% `6 Z; H9 Y这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
' P) k, V% A  l+ e- [嗯,可以不用placebuffer,用buffer比较好
' n% N+ L- G- z2 O在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
/ O& Y) n) l* |/ F3 s7 ]( Iis
6 v. ]; o, k0 N: J, \0 xi : integer;# H1 J- I+ b8 B$ v
obj : object;" x$ v8 z9 d2 n9 X; |% N
ta : table[object,dateti ...
2 a! L0 v* K; Z, _7 n' T
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
( c: l, p2 m3 x( Z* b9 ?: Q请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
0 ^" S- a% M6 R1 N/ H: N1 T  O4 q嗯,可以不用placebuffer,用buffer比较好
) `+ [$ k! d& q! i! v) T  P, p* c在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
" l; m; b/ q4 O6 r; Cis
4 |( j) t' F& D$ a. L5 X6 u4 Xi : integer;" t( ]* N- S0 t. [% G
obj : object;' ^' p) l4 G5 r/ C) I& o
ta : table[object,dateti ...

, x" H+ U, }/ _1 B
  P- n; {6 I- N, `1 }3 m4 L1 o& ^我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。0 [5 }" b* J  g8 [7 F8 K
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
9 I5 }) q9 f' M6 `; U8 o2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。% j2 Z. h) {: v* _- |* C; v
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 " J1 o8 M& j1 s5 b
' c" M* ?2 w" q9 I/ b- s5 }5 k
) H5 A. O' b3 `) x* J0 J
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
: c( i: v1 g+ P* ]) H  r1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
6 M$ s& a0 H1 c9 p
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?" f: `8 F3 l: a. A. r
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好: L) e# N( H* ~
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即; I4 F" k- M( Y2 Q7 C! \1 W1 {" Z
# 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& ]" U. C  F2 K: E* U9 H0 p$ |2 `( j
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q. T5 @8 \7 M& _  S; C
obj : object;" G1 d; |# F. A
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
7 U- p) W9 c& P) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
/ v1 a( x( m# E, B. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m! p  _' C7 g) T* O+ |2 U8 _7 h4 @
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
$ l9 x) B" V0 u7 Eta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F5 N3 ~' z  Q: a9 `4 F4 j
ta[2,i] := buffer.mu(i).time;4 G  N% ?& @) g  q+ i) u1 E
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;. _! k0 }5 I; @: s1 s! T9 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
! H9 t' ?. j0 xobj := ta[1,1];1 i9 u( D1 s% w' {7 J. I
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);2 Q+ O$ B$ d4 v' `0 J
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J/ W9 p: l6 @5 ~; f9 G
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-13 19:56 , Processed in 0.029508 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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