设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8865|回复: 6

[求助] 调度优先级

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

最佳答案

查看完整内容

嗯,可以不用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比较好* H" w( v0 Q; A: a' e, g
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
7 X4 U1 {* e* x% xis
2 T; [% e. m9 y8 ], Mi : integer;: }3 I2 w: C, m
obj : object;6 G' `! T5 y, m. M$ Q$ x
ta : table[object,datetime];
5 f. f. G- h& x& jdo( d; r% G% S4 T$ J
ta.create;8 [: o" h+ A* X
for i := 1 to buffer.nummu loop
* ?/ Y  l! h$ G+ g! h& D: {# lta[1,i] := buffer.mu(i);
- M! e* ~8 R8 T5 s1 @% Kta[2,i] := buffer.mu(i).time;
6 M9 g* K& O' I$ \0 Knext;) R  N3 C, O! X& Q' `
ta.sort(2,up);
" u/ }2 H) x8 L; p4 [7 fobj := ta[1,1];
: i. p1 C7 \& B& O7 _1 }1 \obj.move(machine);
$ t7 K4 l5 v3 a4 c  ^/ m1 Gend;/ [; h  ^, P- m% ~, B% D9 V9 H
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
/ a. c  |( b/ v; a* C0 ~% _7 z嗯,可以不用placebuffer,用buffer比较好
; \* o% n" }1 ~: t在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
; a  e+ [+ n7 M* ]% n  Yis
' i( I; l1 g/ G+ `2 M7 J: X, ^i : integer;: q9 ]4 H9 Q! @! J# }& t
obj : object;' w: T) i! x& o
ta : table[object,dateti ...

, U+ g+ }/ C8 T8 ]% H# B非常感谢你的回答啊。
1 O* e7 E2 @. P1 K. O+ L6 B# m* m这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 4 D. u4 v0 i5 Y# ]
嗯,可以不用placebuffer,用buffer比较好: i* j% D' O0 _* o9 _8 ]* E
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
2 L. a' B. ]& q" N# K% c; xis ' |) O8 o8 e6 @& c" ~* y7 B* @
i : integer;4 u2 c# Q! m" B% i, P  T
obj : object;
  K3 e1 d) q- zta : table[object,dateti ...
7 K' ]% a/ R% z# Z6 l; N! P- D
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
+ V# q  U% W8 O/ |请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 3 e& R$ s* j8 a. A
嗯,可以不用placebuffer,用buffer比较好
; P* p9 ~7 p% n" f& r0 O在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即, ?9 _0 w9 g# @1 _* @1 c
is ' R$ _4 i1 _4 s
i : integer;
2 S+ ^1 N1 C1 T+ p$ U6 M* ?obj : object;# r" D9 P- g5 ?# a
ta : table[object,dateti ...

0 |3 W2 B# u4 D; \- h2 A; X) \% Z" j$ _: ^; o0 z4 e! L1 k
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
) l5 N) f7 ~4 u2 x9 i. D1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
  o- n& y( f0 ]& p! R2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
( Y6 z& e$ L' S$ O* y* _个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 ( W" V2 l: q" `( {' H9 B

. k3 Q7 U& p1 E: X/ O. l( a
/ }9 U# S7 k6 C我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。2 N- {7 w* Y0 ?  g$ `+ n
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
- F7 ?7 [' e; U5 K* m5 e# m( \5 J4 n9 r
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?# H2 T  o  U) k
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好) |/ G1 \* G8 e1 Y
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
% p3 p8 ?; e4 S0 T" ~! z4 [; z; M# 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
7 V6 ?; x4 E6 ?2 U0 w. s% Ai : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
3 L6 q0 \" w' e9 z! C7 Fobj : object;
3 s) D+ d! F) a0 u6 n& k% z) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];) \& m: F8 L& i* X& j& A, t
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo& Q. L& i8 L( X! S; S: r1 ~( \
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
4 v' u7 ~/ W/ Kfor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
3 \4 _: b" S, b$ B  ]4 V4 ]ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
+ s3 g, I1 z5 M. H; pta[2,i] := buffer.mu(i).time;3 t$ F$ h$ l' a5 @1 u6 V
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;- N1 f% R7 [! B- O* K' ]- s
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
. e+ g/ `& v& ^6 w8 ?obj := ta[1,1];) d$ ]  B" s9 l- V
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
# H" V) Z- G, c  K4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J  c& j; m$ q& c
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-27 19:46 , Processed in 0.015910 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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