设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9458|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!3 G/ G% h+ m" _9 F7 {
另外Control里有个Pull Control是怎么一回事啊?
" @/ r& i* V% M. |6 ]0 X$ ?1 L还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好
* j9 B2 N; {! H2 E" |' v在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
/ i6 X% Z0 j: |& ois
" S  A8 W8 c  f9 `i : integer;* d& y6 t! a% o4 C
obj : object;3 j( R5 L; a6 ?6 Y: z/ b& L0 {
ta : table[object,datetime];2 I' X* S/ I9 N% \  E
do) D9 R7 I0 a. N# p8 `
ta.create;* d  ?* i3 T, s: C1 w$ l( F
for i := 1 to buffer.nummu loop) S' v& m# h# t: [6 p7 z
ta[1,i] := buffer.mu(i);! D. A2 u5 V; Q8 L
ta[2,i] := buffer.mu(i).time;
9 [) P9 k0 E& J" c/ hnext;
: a! d, q# M' Z* L( wta.sort(2,up);
4 D4 t4 N- ~* Y8 A, Tobj := ta[1,1];
' {' |- L& `0 {" k& M- Qobj.move(machine);
: s4 g" b* r" ?7 C. D2 `end;
0 J* q4 `% h  J+ ?2 U上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表   Y  `. s) G4 q! h% H
嗯,可以不用placebuffer,用buffer比较好# v* p4 H7 @8 B
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
; n' n1 H# o$ ]9 kis + }( B6 l  _* m3 V7 p/ S& D
i : integer;
# a0 k, B# @  c! `obj : object;' z5 }6 t8 [  r4 s& s: t1 v
ta : table[object,dateti ...

- U$ Y" W  N  b* o$ C非常感谢你的回答啊。
3 O# `% K* Z; o- D; N; U- x+ r这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 6 N4 x& V7 h( a3 T, h* I* ~
嗯,可以不用placebuffer,用buffer比较好/ `4 K" U& O0 S9 ]0 G
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即2 k, Z3 c7 c2 w+ S7 ~0 B
is
6 t+ }% o3 I2 g; Si : integer;/ L* f# p5 B! r3 P/ B1 @. F
obj : object;) E, L( O" ^; B# Y0 j9 n
ta : table[object,dateti ...
+ o" {$ |& e8 G% h: }5 d6 f, P9 L
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
2 `# p3 _6 S5 w" s' y( j* G7 `4 g请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 9 g- ^4 t/ I+ s: H9 D# A! w
嗯,可以不用placebuffer,用buffer比较好- w7 Z* b7 j6 I2 h$ [8 _
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即  ?: z5 D3 z$ V4 n; p0 \0 F
is
: r6 U. ]9 _' Q7 ^% ]i : integer;% J8 I; {' ~& H, }
obj : object;
* U7 m8 j) y4 g/ `8 O6 ]ta : table[object,dateti ...

8 |$ _. P$ C' k( R- g# H
1 p; k/ u' y" v) {7 J我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。! e" A# C% o! @: F6 h! U  K4 U! Y
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
0 B( t5 r$ H+ s- C) T2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
% h$ y- e) Z( ~- B" d# ]' K# k个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
- ~' v9 [) Z  d4 ]* O$ e4 q0 w5 `8 w9 |. d: e6 `4 P
" U6 n5 j- ?* `0 ]- x8 o2 ~2 C+ v8 v- p
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
# g+ ]* y) T" k; d. l5 s# X* a1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
8 b) B$ N7 g3 o. ?
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?; c3 n& K) H% C' \( J9 S0 r
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好4 G# T9 [& ~  T
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
9 k: q0 H% \( g# ^. R# 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
5 `7 i' i7 d7 u* R+ K$ H; |1 Ki : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
3 [. S0 `& y  N) R( b5 G2 Fobj : object;4 k5 ]4 ?6 O5 c) H( I7 @
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
) C  [# x) T- x  R( U) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo# V9 V+ L2 j5 K1 p, G$ ?) {
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
0 T! |/ g7 q. p- Ifor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
+ Q+ W$ l3 W* Wta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
2 v5 B# s& G' x; y5 ?ta[2,i] := buffer.mu(i).time;& o, V. Y3 a# p% W! s  b: [
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
! v( t$ q6 }8 q0 @2 e8 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( c# D% I( M& m4 w
obj := ta[1,1];# E; Y% g( E8 d- X
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);# K2 K9 T2 a* s
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
/ R9 s$ H6 u# ]# L. w上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-17 17:23 , Processed in 0.020839 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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