设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8087|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!+ h- Z7 b% _" B: j. |
另外Control里有个Pull Control是怎么一回事啊?" x% c) ?3 c5 |% d% r% @: O
还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好
) q( g/ W# |# X) i6 t在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
" R% F0 J3 G5 Pis $ t7 p- k( o2 O1 [
i : integer;
0 k/ b3 m( h" B3 Kobj : object;
" S# d* F5 O" G; p" F$ Yta : table[object,datetime];
/ Z) y, t' B, o2 M2 ?# Bdo. D/ F( C. t' ^7 V1 V" v4 ~0 a
ta.create;4 k' ~6 a/ F  K) z
for i := 1 to buffer.nummu loop- l1 i# t% Z+ W8 L) ^5 i
ta[1,i] := buffer.mu(i);
4 E+ h" o4 x3 T, w# c+ A& [! vta[2,i] := buffer.mu(i).time;& z  W0 H( t/ ]6 H5 B0 K
next;: L7 U/ m/ B+ }& m: h
ta.sort(2,up);
$ l, S# Z0 }, S; Xobj := ta[1,1];. \7 V7 U7 e( N' W
obj.move(machine);
6 X0 n5 U: s2 Gend;- p7 w1 Z# b9 o0 c% E
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 : h& S! S0 `& ]3 o
嗯,可以不用placebuffer,用buffer比较好2 z) A% j- S8 K- @* W% I+ X
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
& E) G6 g- ?$ eis
8 ^7 R" P! c+ C, Z0 d2 M1 e! _& mi : integer;" w8 v- X9 S; v7 l2 ^9 G4 c
obj : object;
: j* \" q3 _1 J1 M$ s9 h: fta : table[object,dateti ...
' ]+ S/ [9 L* D' q6 o5 z4 d+ e0 q
非常感谢你的回答啊。
' j# P. J! c  f2 g& Z) q这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
! x! Z( R' ]/ C. J嗯,可以不用placebuffer,用buffer比较好
: q% v9 o" l$ y2 e! `在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即( ^; t! Q& ^: ]* i/ B& h
is * s' n* V! P) M. Q( o" s5 d7 K. {6 Y
i : integer;
" `/ Y* u2 K' v- s7 ~obj : object;
) Z% {7 D* p1 {# q$ l3 b/ ata : table[object,dateti ...
! h/ l/ }: D9 t5 y' i& p
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
  w: ?- t% \& I, W- }' u请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 ) _) W# j: h1 z( F& P! _4 v
嗯,可以不用placebuffer,用buffer比较好8 v+ Y6 M: a) @# R+ e
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即" ?/ e7 ?0 z7 k  Z- i! D# x
is
& o- T3 o* H# G0 ~, v! _. Ji : integer;
, g. D( O, ?1 l/ z$ ^# W0 `5 @; uobj : object;
4 K9 B' ]) v3 i2 b- kta : table[object,dateti ...
8 I$ v7 S  `7 ^; a

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

本版积分规则

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

GMT+8, 2026-2-19 18:36 , Processed in 0.017214 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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