设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8503|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!1 q9 Y2 B0 Q* Z$ F2 W. x7 j2 k( k- d
另外Control里有个Pull Control是怎么一回事啊?
! v" g& O$ S; ?) I+ Y还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好. j# F; a; W) ]0 F- U. O: I
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即" n4 x9 E1 L+ U
is # y: L( Z  i0 a3 M; Z2 F
i : integer;! }$ _% K6 T/ i+ {4 E. l# }
obj : object;0 V- A+ P+ C1 r4 P: ^' s9 K
ta : table[object,datetime];+ C% [! `0 I  A# g& }; u6 }, h
do& C! x( i7 U5 C$ A# G$ b8 P, G
ta.create;
: g2 ^1 ~/ j0 X3 A$ w9 r4 Ifor i := 1 to buffer.nummu loop
& S9 J% n2 C+ G: a5 ?ta[1,i] := buffer.mu(i);
5 v# ^4 d* D+ j  I  o( K- lta[2,i] := buffer.mu(i).time;
# S5 l& p2 f9 snext;0 R5 M, L' C) o( }
ta.sort(2,up);
% l0 J5 T! V3 B$ ^obj := ta[1,1];
' ]$ l  \1 S# ^: l- Qobj.move(machine);
9 X- D1 ^. {& h3 Eend;: e9 c( S6 J$ R% k, q8 @
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
, a5 e) G% ~& e) q$ D1 v嗯,可以不用placebuffer,用buffer比较好
  L2 e; d% q8 L! X, l0 y" _在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即7 f7 [( V6 `! m
is
1 A5 V5 M( F8 a5 _5 H/ l5 \i : integer;
- r0 ~( W& n/ E6 s  \obj : object;
0 o% z5 g* h1 n+ ita : table[object,dateti ...
5 R. s- ]' d3 E
非常感谢你的回答啊。! c* k3 e! Z( o# n; \
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
0 G0 y* P* n9 B. y8 V( ~7 X. @嗯,可以不用placebuffer,用buffer比较好( W7 J5 y% i- w$ P9 Q) A, Y
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
1 S& c' O& b, y% j( q/ ]is
- o/ E+ u' U- K5 V, C, q. Wi : integer;" w/ m# a! E3 {
obj : object;
& p* \2 h0 F& h% h# y/ H0 kta : table[object,dateti ...
. o) x7 G: i! D& W( E
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。! S4 J; m+ Q% _$ V* C; m; ^
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
5 L" j- ?1 u; Y9 n嗯,可以不用placebuffer,用buffer比较好+ j* D6 f, {2 t2 T
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即  S0 Y" l7 h  v' c* }2 y
is
  L' v2 \4 R8 Q5 xi : integer;3 ?6 a% j0 {0 g6 A5 O$ I9 x
obj : object;7 f  ]" j8 S# G" {3 i2 i
ta : table[object,dateti ...
! W9 Q; {) J4 [* @
3 [+ ~8 C& ]# V8 H8 B
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
( o4 Z2 f& `$ k/ F  T" `" m$ G+ }1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??/ o6 A) x, K1 q# ~( y
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
( H* c" W. ^* W) D, ^/ m个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 ) A) i0 Z3 Q8 B3 G* B/ B( a, w

  ]0 F! ^! S# r0 i4 v
$ [+ s3 Z" s; ]+ v# ^; ~我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
& i# O2 f8 U: i. |1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

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

本版积分规则

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

GMT+8, 2026-5-2 10:01 , Processed in 0.019357 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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