设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9005|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!- [+ q8 X- z& D7 b# O$ q3 k' i, W  ?
另外Control里有个Pull Control是怎么一回事啊?) i0 V* t% j4 I
还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好
5 w$ H$ I2 h+ k* e; C$ i在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即6 @2 V% c; [  Z% e) ]
is ) e) D) P; L9 d  v
i : integer;
; \) U9 c4 e% `; i6 [! `obj : object;
/ C0 B% P- A. o# k- ita : table[object,datetime];
1 i* ?0 v1 A/ ado
% {" j: ]5 i3 B# U6 yta.create;
9 M5 `; A/ w4 d; W0 Y1 vfor i := 1 to buffer.nummu loop* n" F' D' [1 ~$ B7 W
ta[1,i] := buffer.mu(i);
5 y# t- C- L5 L6 `. ^ta[2,i] := buffer.mu(i).time;. U# f8 _! U' s2 [; a  Q7 W$ Y
next;
5 V  l5 @( \/ }, {ta.sort(2,up);+ d. Q) S! {  b% _7 A4 Q
obj := ta[1,1];) W7 F2 z: |& i7 h" D) i( J# W- F
obj.move(machine);
; b  z/ G& \( z( C" oend;+ P+ e  C) X. A, s6 A1 J& g8 V! v
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 2 f8 W4 Y! M* L1 C) k3 ?( ?
嗯,可以不用placebuffer,用buffer比较好& T. q* q. W- ^; s! |2 D
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即: S+ }8 h/ [5 O+ [& a6 k( x
is
4 I- z% Z' v1 L9 H5 j. qi : integer;
! c# o, `& L7 Lobj : object;
  P# M$ I) W4 ^) e  mta : table[object,dateti ...
& q# d3 {) [0 }0 K
非常感谢你的回答啊。
9 e; e* E% j7 B& v+ o这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
2 s* h% n0 w$ ?. ~8 k( z! w; A嗯,可以不用placebuffer,用buffer比较好
5 {* v, n( [6 T3 k- B' K7 P在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即0 e9 m1 p/ X) T, P1 O
is
, M% G9 {% N9 s; Qi : integer;
0 Q% M$ ^+ _5 H' b, K/ @8 k' B2 fobj : object;  K3 @# G4 V" m. O" j
ta : table[object,dateti ...
0 C6 V1 R. N! A- P/ ?9 R4 C' O
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。+ p9 O9 G' K1 M( ^
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 % v3 D1 i7 _1 d5 E" B8 @( |
嗯,可以不用placebuffer,用buffer比较好
/ N' D2 p: {5 V+ J. y! }+ ~在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即( W$ ?* [$ z8 f/ A7 S: [/ x
is
7 c2 ^' i  d/ K% \i : integer;
( _6 m$ o8 K( Q' P+ Cobj : object;: h& X- t5 g) R; X3 `3 p4 r
ta : table[object,dateti ...
" z: ^+ B/ }; V4 Q4 j$ I" e# l# f! a

/ @6 V# f+ \- m/ t9 ]+ k我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
. }1 }5 M7 b& C) z. A( c$ K+ ?; o1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
5 M2 [" x" C% O/ \  J) E' G5 X2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。3 g2 b. s9 C& M" {
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
) }. W; Y) I$ x. L5 ^* F' z+ S7 A5 U. s& w: _! {4 Z# Z
3 L7 z- t* t5 r- N2 q9 k( g
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。/ M8 h* W* y# U8 f  y4 |; Z9 L
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
$ e( G! S0 L" j6 ?
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?9 k# A4 |8 b+ `1 T
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好4 C9 @/ c% h, v( O! D
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即5 A! j* O, p" i* `/ G+ O; L3 Y" k0 I7 c
# 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
, c: i, m/ s- oi : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q% o8 X, a( }" B) j- V7 Q2 m( |
obj : object;) a; |' C& Q/ K
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
4 r7 t/ U$ O! i2 b9 [8 f4 h1 _" q) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
( W5 M1 r  j) G! i. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
9 \" c% e& {' X+ y8 ]0 Jfor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T; Y! v0 Q' p  F" S' s: v
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/ r9 X. I, \' f. S7 G
ta[2,i] := buffer.mu(i).time;, r5 v/ W% [5 z$ k
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
2 W- q  Z2 j9 o* k. U8 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; @9 E2 R, e& b7 B+ `: a$ H
obj := ta[1,1];
9 f2 ~! L# M3 g! a) k: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
% T1 Z4 L3 i1 s1 L" a+ I: x4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
# B! q9 T$ ^1 `! j9 W9 Q上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-13 22:37 , Processed in 0.016651 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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