设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7942|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!% H8 v/ d) s; A: p, i, N1 r% D& T
另外Control里有个Pull Control是怎么一回事啊?# q6 J+ {5 k1 n: A
还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好+ @& k7 `) |5 Q! F! t
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
8 r$ k" k! k0 n, e5 Pis
; ^- |% |; y+ ^8 f" mi : integer;
* G3 O" d8 B$ v; Q) Jobj : object;4 {$ D2 [: h) c" u
ta : table[object,datetime];
" M; a3 H% Y! C7 [$ G  @5 A% \do9 B8 K4 r6 E/ Q" I$ y4 ]
ta.create;
$ [4 t$ Y' O3 r4 n/ w  P5 Yfor i := 1 to buffer.nummu loop; S; F- r# \5 C
ta[1,i] := buffer.mu(i);* [: F( N/ E: w& j. S" a
ta[2,i] := buffer.mu(i).time;' E7 V, {3 [/ p: e% w1 L) x/ Q, E
next;
% h' a% O* ?  G, fta.sort(2,up);
0 Z% J7 f8 K' }: q, e- v. jobj := ta[1,1];
6 V/ O/ E# k3 M& l1 X! E6 xobj.move(machine);
# {  y% I: t4 x+ s- M' `; aend;
8 c  [7 R) I. o/ ^0 [& p( }; `上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表   V; s# x7 @& w* d0 }( p
嗯,可以不用placebuffer,用buffer比较好
8 }2 ?( d5 q7 ~4 u在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
* b# ^* H+ \6 S3 jis " S( E7 X) A4 @) y, I
i : integer;
# u: W' w* i* Z/ Y6 s: Iobj : object;2 r6 W* Z" ^9 j
ta : table[object,dateti ...

7 K5 N0 I! R$ R* `非常感谢你的回答啊。
. L; Y$ x3 M# i1 d这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 % a0 Z8 H6 d1 |8 b, m3 U8 h( t4 K
嗯,可以不用placebuffer,用buffer比较好6 X* r9 x% A2 }1 Z. P; b
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
9 v. m& u5 G9 i9 t- q3 _0 N% C. eis
4 V- H' ^/ W$ B; E3 @0 Vi : integer;0 X5 X, g. G: ?
obj : object;0 p  o5 Z' a- |( L4 X) N
ta : table[object,dateti ...

& O3 h8 J* ~( @liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
5 m# h% H3 e$ W请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
8 O( D( i0 X4 }+ `  T& E嗯,可以不用placebuffer,用buffer比较好
0 u+ B, u7 G' S" e9 K在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
8 w$ l4 g# d' a! f5 A; p2 Nis
6 D4 r5 M) ~7 W& z; O) ai : integer;  E4 {2 L9 Y  g) w: \
obj : object;
8 Q: v- I' _3 d; eta : table[object,dateti ...
0 H7 R& W9 U* z1 W, g1 P* l

& i7 }3 |1 e1 }  B8 k我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。: F/ \0 t3 |5 Q( e
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
! i8 ^) u  O9 p/ I) f& d2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。6 N6 y1 [. h, g: O, k
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
5 w: {2 S7 F# H# D
  `# S0 [  l4 a3 U& V/ {" D0 O: I7 G: ]1 A$ q; p% j( m: z
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。7 Q3 N2 W- T7 w1 |. A1 O
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

$ h. ^" y1 P2 V& ^是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
1 U$ E  A$ e( Z" J$ U3 e感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
( h: l6 a9 N" F3 ?: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
9 L. F- a8 v- x8 D# 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$ l) e' G, I6 n( ~: P. m! M. ?
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q( ?( \* w# Z# y) _0 x
obj : object;
: C; x: K" j/ G% f$ r) L) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
# f; Y' x. m7 {" u. V3 ?6 m5 v) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
7 j. C4 U* @! K+ j. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m0 [* m9 R7 `5 d- E' Q
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
# g7 Y( m- t, X) S6 h+ Lta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F3 h6 Y* A8 u" a7 B0 U
ta[2,i] := buffer.mu(i).time;
( h# p9 u4 m1 r$ s/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
) d5 I' K+ f4 b7 c8 s8 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, x3 k; V9 M! M* O. f; N
obj := ta[1,1];) S6 I# q* M, }+ H
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);" x$ o! I+ N$ Y, i: V3 A6 C
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J" ^, F9 D7 f  p! M, z
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-23 11:36 , Processed in 0.015825 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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