设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7887|回复: 6

[求助] 调度优先级

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

最佳答案

查看完整内容

嗯,可以不用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比较好
6 n2 @, ^0 H- ~  k$ c7 ]在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即: @& o5 v4 l) C
is
" w) |- c% @8 ~) di : integer;
/ W6 b0 e. R4 [( r( U0 p' Aobj : object;4 m' Q4 d1 B1 g. Z- z* D* e1 g' @
ta : table[object,datetime];
6 I- Q. L/ B  |# o* Mdo
$ |4 N$ b( |- j1 p0 Q. `3 h. ^! dta.create;
% ^" r5 F7 n9 o( K# f7 ^for i := 1 to buffer.nummu loop
7 o5 o0 R3 S! k0 r; \ta[1,i] := buffer.mu(i);6 h) h+ V' d" B  E
ta[2,i] := buffer.mu(i).time;8 D8 t# {; S6 D' v5 C8 H
next;# z  J8 a. I4 }
ta.sort(2,up);
- E! j7 Z/ a" u9 L: G2 ]+ n- @obj := ta[1,1];/ k* D' q" w& |* l0 |
obj.move(machine);) l/ k7 Y+ s( D8 A& w% g
end;
1 \, a0 [7 D, A: _9 x& s0 T上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
# }, m0 e' W) u' b0 ~/ ^& e$ G嗯,可以不用placebuffer,用buffer比较好5 ]' s3 Q/ @6 K5 v. O* R
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
- B1 w# U: P- v" lis # _# c( W, s/ i2 Q5 S% ?9 G  `
i : integer;7 c* Q% B: b& i+ V
obj : object;7 u$ p8 \3 T  R) _& V
ta : table[object,dateti ...
! W! s* G; x5 ~
非常感谢你的回答啊。+ Z. c! e3 P; N9 q; z3 m+ e, T  g
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
0 v  }0 S4 |! g嗯,可以不用placebuffer,用buffer比较好7 u' n( ^% G, F7 _0 s& c* i
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即% \% R5 p: R6 G
is - ?% V( M6 f2 ]4 q" l
i : integer;* m! h, V; S) a; {9 y' n
obj : object;; P/ t; A# N: }% C% D+ I" c3 i* t
ta : table[object,dateti ...

4 Y3 R6 S1 H/ k# q2 ~liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。; h. g* Y! h2 _2 R2 e5 Y/ h
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 ; x9 j/ N" _, o& y. B! i
嗯,可以不用placebuffer,用buffer比较好8 x+ Z; Q9 b0 Z: ]/ y
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
. K6 U. r3 g4 M" jis
/ _$ g$ ^5 t) S) w# l, K5 mi : integer;3 Z* r. z7 \1 T  L$ a/ `
obj : object;
+ a( A9 n# o* z/ s" Q" ]/ R: v2 h0 Ata : table[object,dateti ...

3 w, G$ m, C6 E
% g, F$ V* o) o4 ?' N8 h9 R2 l我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
! n  I* w. F5 b# ]& T" Q1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??/ a% M3 J( Z& `3 e" X* s. ~
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
1 O' k3 S7 Y4 a$ n2 p个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
5 W8 X. l5 n0 X1 G5 h( ]' P8 o! J# F, l$ `8 T

9 n% m. K* l. J* ^' s% p我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
7 n; }7 \# a& W# [1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
, ~! ^  v  ^; A& ~9 `4 A
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
1 f- E# D6 E3 e: t+ q7 }/ Z感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
' p6 z, `2 K, w/ V5 {: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即  x$ d& e* J+ p# h8 z6 J
# 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  c2 S. J1 E% E( D6 A1 i4 k0 t# T
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q3 e8 u' E" h$ h. J. C' r8 A
obj : object;
! H- S: U6 o8 t8 k9 _6 s7 |) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
; z* N% O% {, D7 l; Y( V# y) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
/ j6 Y0 ~/ k  J, d/ j. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
, D/ h: m+ B: I+ Cfor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
& I* K: J& a% |# z9 Nta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F& r6 j8 o6 K* }6 C1 M
ta[2,i] := buffer.mu(i).time;* P& _: C+ d8 V% K1 I3 U
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
( Z  g. p: z9 O( B' G8 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
% I' K7 w$ z. b5 Q( j* Nobj := ta[1,1];0 O: f6 c4 K7 Y( m/ v
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
3 h( {6 P6 u$ F. o4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J& G) D8 t/ Q6 g0 ~( V% z) u$ {
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-14 00:31 , Processed in 0.023346 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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