设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8545|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!2 n/ V" x5 k( v# d8 c, G4 U7 j
另外Control里有个Pull Control是怎么一回事啊?
- v( L* |+ n% b' [还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好1 x; Q4 n9 c: w( ?- o
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
* B0 ~8 {7 f2 T2 Fis 2 `% }# n/ U7 w* D3 f4 {
i : integer;
) E* o" c. H4 ~3 T6 s6 \obj : object;
' r% E! G+ q2 P$ V  bta : table[object,datetime];
5 e. o- T/ n. b, d% e( Tdo$ j8 e. A; `6 a0 q
ta.create;
/ i4 a- n* T  N- _& mfor i := 1 to buffer.nummu loop4 T' W7 g0 g  Q' F+ t, x
ta[1,i] := buffer.mu(i);# M) i- d4 B$ ?
ta[2,i] := buffer.mu(i).time;. E9 |, V; r5 X) Z
next;
% B6 w0 a: v* F1 e$ nta.sort(2,up);
3 x" f7 }3 r4 ^2 B; D# b, L" robj := ta[1,1];' Y# q1 ?$ i0 n- P
obj.move(machine);
, g2 t# w2 Q: R# ~7 b5 h$ Lend;
2 b) O1 a2 Z2 a# @6 z4 V上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 7 @. u4 [! e4 y5 ~) m9 L
嗯,可以不用placebuffer,用buffer比较好
3 r; c. u3 r6 o/ G2 d( _* N( G% ]1 I在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即8 |  w3 o* X5 N, I4 L
is
# Y& L6 j3 p- V- O% si : integer;+ J, N4 b# N' [5 \1 I0 s4 c) h
obj : object;+ y9 x  b% h" G0 A: f
ta : table[object,dateti ...

- ]6 N6 w; ?" L6 ~" r6 b' N& }; \非常感谢你的回答啊。
# ?1 R! h6 U  ]8 r. w* n这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 2 V. z  _# s/ G/ f: N1 X$ r) T9 g" P
嗯,可以不用placebuffer,用buffer比较好  p( m4 M- F! G8 g, }1 _
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即$ H$ i3 C" e) r$ W  I: x# T2 K
is
( N& @" ^7 z0 q+ G1 \i : integer;4 R0 X' {( Q, R
obj : object;3 Y4 @: F9 `7 L8 V' ~
ta : table[object,dateti ...
' E" O% t- Z. t' i4 H
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
* E, K/ P" S- e: Q' E" F请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 & D6 ^9 [6 b, i: g. I( @
嗯,可以不用placebuffer,用buffer比较好: b! ]& f9 e) E: X3 S5 y
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即) A! y; n  f2 A9 L: \- P/ h" v
is
7 ?; U* F9 A) u2 w8 ?i : integer;% k+ _  M/ z" d  U7 y6 o! O5 c
obj : object;9 z+ |8 R5 G' r5 V; q% L; N- p6 I$ @
ta : table[object,dateti ...

" p5 g. }8 h/ D& p: f+ ^8 y, E5 q% G% i) X+ G' G5 c
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
" i, x4 O! }) u/ G- h, e1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
( ^6 Y* D7 u1 k1 m$ o6 G6 G+ j2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
5 W4 r5 n; D: s% O7 s9 x3 P个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 # |- W2 J. {3 C; y' a
" E) S- y# I, s1 Q/ {: \. k
: E0 \% z; z, c& I6 E6 K
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
# p, G3 @: V: t: p& ?/ Z1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
8 q* G( c8 f3 `% {4 y
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
2 R5 v- P' n9 C8 R- c感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好' }: P  X$ q. f# P* T1 p2 a- Y5 e
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即+ ~2 d0 e6 I/ f
# 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
1 X4 v, d6 b  _! K+ e6 wi : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
8 c, \1 l& V. \) Yobj : object;# K) x: a# F2 f3 s4 }5 t
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];. w, v6 w/ p6 X
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
" R7 p& v2 Y) z* ~+ b. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m" _2 N/ D9 g7 P2 I- s; [2 N* \
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T6 l7 ]) w9 ~' T
ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
9 L/ ?" R0 G/ W% Ata[2,i] := buffer.mu(i).time;1 K/ d0 `# {3 D4 I( e' Z7 {9 _% ^
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
6 h" E1 ~6 Q0 t7 Z2 B1 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
. f2 {1 Z1 K3 F$ |1 Gobj := ta[1,1];
8 _0 O' U( P* u$ I2 }8 L$ g: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);( a6 `; ?4 L9 b3 A* I9 F7 f+ ~1 i. I
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J" N$ m) W8 V9 ~0 k7 x3 }. \
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-7 12:55 , Processed in 0.019031 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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