设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7912|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!0 W- j9 n% r; _2 e; w' ]* W
另外Control里有个Pull Control是怎么一回事啊?8 t+ v2 ~* S" i9 A2 e8 h% K  p9 X1 d
还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好! M$ U1 d/ i! K$ a" ]0 ]( L
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
4 M# |$ U$ i8 v: z- M3 Lis 0 D5 L& L. Z, I
i : integer;
7 z+ v- ^4 ~; f/ [obj : object;( `0 l5 D* L4 x2 _( e. |" ^: K, ]$ u
ta : table[object,datetime];3 t  R6 Z% L$ P1 h# L! V2 O6 m
do9 h5 a9 V; N  Q( v. r
ta.create;, J0 B/ r4 Y5 d: f# G
for i := 1 to buffer.nummu loop9 C( I/ x% \; `4 z2 ~8 w" `4 ?6 X
ta[1,i] := buffer.mu(i);
6 v/ r- ]9 L% pta[2,i] := buffer.mu(i).time;) L6 M: N, ]- y4 b
next;
1 R5 J7 M  J3 e3 H4 D6 d2 `ta.sort(2,up);$ t' `% Y7 d( Y+ `5 |; y
obj := ta[1,1];7 l# j. P8 D' a3 _
obj.move(machine);* F; a# o1 y7 r: @
end;% A/ T; c+ C8 J9 L6 H
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
3 L  g1 d( \, Q% p! Y- q- _嗯,可以不用placebuffer,用buffer比较好2 \: Y9 {7 ^/ w. ?8 w$ y# l
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即: @7 S6 X7 H: `  l; X8 G2 U
is
6 \/ F. B2 O/ ~5 U& wi : integer;' N- P* i# ^6 q- B- }8 u& Q
obj : object;8 e4 x- ~' q; ^
ta : table[object,dateti ...

7 ^- s; q1 q9 F$ \非常感谢你的回答啊。
, L" ?! M2 ?" a3 F5 R- \0 \这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 4 E* T% I9 H' ], _2 ^9 o, U
嗯,可以不用placebuffer,用buffer比较好* }! f9 ~) m0 G9 n: \9 V8 d
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
  b* o7 e; y, n3 x$ d- \7 o+ C9 h5 yis
* }, {& |% ]1 M2 p# s- L% b8 f/ Di : integer;! g: T6 W; b6 V0 Q) X, |+ W
obj : object;  v, G7 p; m  i6 S& V. p
ta : table[object,dateti ...

/ H  |2 e0 e# A7 K/ Tliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。* q+ v2 F! o+ }, L6 y
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
% w$ Y6 H; j& C' a嗯,可以不用placebuffer,用buffer比较好5 `# n; g9 k5 d$ n+ r% K
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
9 E5 O1 X% c8 A3 Sis , V1 Q" S0 M: y
i : integer;0 e1 p1 Z; ?7 O3 F5 k' G
obj : object;3 {0 Q, B1 M6 A( n1 q+ L) N
ta : table[object,dateti ...
$ F0 d- e- K7 `
$ m: z$ M; l' ^' t* i
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。$ F# B. U& p3 Z+ k. {
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
  x2 m6 @/ C" q" H' O$ D6 _; K2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。- g8 W0 X+ {; D  V
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
3 m* A5 Z4 t0 g1 ]0 N! e: C" f& P# d* A

) b0 t" z, s0 `/ S我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。) a2 I* T" \7 N9 \5 z9 Q# _: k
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

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

本版积分规则

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

GMT+8, 2026-1-19 07:20 , Processed in 0.025469 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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