设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8361|回复: 6

[求助] 调度优先级

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

最佳答案

查看完整内容

嗯,可以不用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比较好& L3 R# }+ i9 j) L3 V; D4 Z
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即) R% n' x& A" h3 d7 U) g( u
is " z' T9 F5 k" h- q: w' c. }3 K
i : integer;
7 p5 g, a" V) ]- r" E* ?0 E9 Eobj : object;
  u/ k, n. y) S5 j; kta : table[object,datetime];7 k1 ?! p0 m2 p7 n0 }
do" s. n1 `1 W+ I/ G
ta.create;) T# e, h7 G9 h1 p5 G: m, L
for i := 1 to buffer.nummu loop# ?# k% y" z( ?  F7 P0 E
ta[1,i] := buffer.mu(i);) r7 g4 D7 E6 l! Z
ta[2,i] := buffer.mu(i).time;
3 o8 K# s5 ~# o  Mnext;6 q: p5 K. k) v4 @
ta.sort(2,up);  {0 J$ m! K. b) O
obj := ta[1,1];
5 h2 s/ K: A* y  s" N; S4 z; m1 S1 @obj.move(machine);+ [( ^: F6 a9 S$ p1 h
end;
0 Q% ?; m8 [( o  g7 g上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
! Z, e8 H" A1 Q; G" M嗯,可以不用placebuffer,用buffer比较好
& ~0 H  b: m2 T: o在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
- Q5 k& v+ t1 p, Q9 Q) e1 tis & O- k; X  A, T8 S+ ]) q
i : integer;3 d9 o, |! K- D. z
obj : object;+ U8 E0 [6 S8 G0 |
ta : table[object,dateti ...

5 l' u+ E9 Y& X: B& h( Q( M非常感谢你的回答啊。
/ w/ d" k) s  `/ f. b, p这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 / l' ]/ b# T5 i% g- G3 d
嗯,可以不用placebuffer,用buffer比较好3 o6 ^7 d: a3 G% Q7 g8 l
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即' d$ ^1 @/ H* b9 ?" ~( p' A" q. N
is
6 p& d7 w. d8 g& h& W  di : integer;* q0 _0 F/ d$ U4 ]+ k/ x
obj : object;
! F$ I1 M( e8 q1 y) ^7 X2 Zta : table[object,dateti ...
; v- h* R/ r) b, P) i
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
+ o$ ?5 Y" p5 f/ Q请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 % e3 \+ I& X9 p9 N) J
嗯,可以不用placebuffer,用buffer比较好
" O& ^% F1 k+ U: q( z在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
( H5 m8 n  q' p/ g4 Z5 pis 3 B- c' P1 p' {/ p7 u2 j
i : integer;6 z2 `$ ]2 C; w( G6 Y
obj : object;
& z7 R% j: ^$ k+ H8 ?# ]+ y1 mta : table[object,dateti ...

1 o- t* c$ J# |; }% [; s8 ^$ h- }1 }
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
: z& r. v; L; i" k1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
( o( F" d- w% y2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。( Y8 A( U0 j7 f0 y7 M
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 * C% ^- {; c; J8 Y* \* ~6 i
* X& s( U, m# j$ V3 ?: l
8 W3 P/ T5 u& _2 N/ z9 B
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。- q0 L+ m7 Q$ Z) E. P. K; }' a% v
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
, z1 s4 S" S2 m/ e6 x% B
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
+ U9 E) c- \! V3 f9 f3 o% [- x感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
0 ]% |+ U4 ?9 o7 a6 ^  G8 y: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即# x3 F' g. f+ `7 I* J' ^1 l0 E+ e, L  O
# 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
  ^" t% \( Y. P" E1 L7 T6 W) \! F1 D5 Pi : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
: o, D8 _  o: n1 V4 iobj : object;
5 U& k: M1 H% W2 r# L( c) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];- c) \3 g9 Y/ }) |
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo0 w7 z8 g. q% C' K
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
' |/ F1 x# n& D" D5 \3 B+ `for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
0 m- U& m$ v7 e! r. Dta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
( k5 D. \/ ~$ @" F4 N1 ita[2,i] := buffer.mu(i).time;; o. T9 w- Y& m- t- ?$ d
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
% m' M% X+ k0 F, V% S+ F4 G" N8 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
3 [5 U( W  E1 w3 L) k- b$ ^obj := ta[1,1];" H, Y. |( G: q. c; B( G
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);( L6 p! ^1 t% h- y4 i: D# l1 k
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J' ]" r: l9 V$ D
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-2 08:47 , Processed in 0.017023 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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