设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8125|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!2 d1 c1 ?- @  u! K
另外Control里有个Pull Control是怎么一回事啊?
: b- y+ e, f: m还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好9 q" @1 y% k# E" i) j$ l6 |
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
. y4 f% ?# V% y" d. E0 Y& X$ pis
( u$ p2 y; {: \2 N2 I# \( e# y0 g$ `9 fi : integer;" T, K1 O9 d0 Q! ^: f( |/ \
obj : object;: S5 D3 ^& }+ ]3 n7 G; E
ta : table[object,datetime];8 q; m! z4 r" n
do
4 L0 `1 k  F2 I8 A: }% R  cta.create;
$ A6 Q! u/ }+ ]& D" o% |for i := 1 to buffer.nummu loop
& A' J4 q& N! @  e8 F6 S; yta[1,i] := buffer.mu(i);% Y2 B  E- C% b' Q  C6 r
ta[2,i] := buffer.mu(i).time;
2 e* m! g! c* W& g7 q+ t, w3 Nnext;: j9 T- u2 L: h% [
ta.sort(2,up);
* f% a' E+ X9 _9 f9 D3 H% I) Aobj := ta[1,1];0 S# w  R# \4 ]3 F/ e! E
obj.move(machine);# W, |5 G3 B9 B, G4 F! R" ^* w: Z; O
end;
, G( B& K3 Q! J" S0 C, \上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
$ e7 k8 g$ w- ]* ~$ s嗯,可以不用placebuffer,用buffer比较好+ c% l3 {/ g1 R5 `2 p* D7 V% w3 W
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即) W1 D: k* R  G  N
is   C5 {" \0 q- `- d# X9 d
i : integer;: M" v0 y+ y9 \+ y8 u8 O- U9 L5 c- j
obj : object;
8 X+ |4 b- M$ y7 h. O- ?* m5 q, zta : table[object,dateti ...

) d! H! `7 i. m+ Z0 {4 ]  ~+ ~非常感谢你的回答啊。
$ f# O1 U2 G- ]这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 0 j0 r/ X' |, {0 m" f
嗯,可以不用placebuffer,用buffer比较好. n6 W$ g  j1 m5 y; F1 {
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即0 |) X4 E2 W- ]  \
is
# Y1 E4 h+ \; T$ Li : integer;8 I  ?! O- ]: C) b
obj : object;
4 _! [. a4 L) E( ]* mta : table[object,dateti ...
' J1 Y- Y% ]! J& k* x( k" V8 w
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
1 @# I( ^; p% e( u% t- U4 U, h请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 ( U8 t: u; c; O$ g( {( k
嗯,可以不用placebuffer,用buffer比较好
1 k( n- T% o7 D' E' v& ^在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即2 T. s4 e, G5 d0 ?! h
is ( [4 e2 r1 z, M8 u' `9 l  H
i : integer;
. b& F% J- @# p8 K% @, Mobj : object;
! I8 I( P  J. b) B# p/ w( v8 Cta : table[object,dateti ...

' e' {+ b6 p0 A6 D# r  y
8 Q& L; O) U3 o/ W+ O8 v我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
( a3 |( [# z: ]% M9 _1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??% M! g+ j  W' c- O
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
( p0 M% L% q# |8 C7 ]) K个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 9 H  r: Q0 n1 w- F# M9 |

$ w4 Z% @2 a; c
4 V. f1 T7 t1 A" C3 q4 d我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
% F1 f0 V, _# S1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

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

本版积分规则

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

GMT+8, 2026-2-25 00:32 , Processed in 0.021116 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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