设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8862|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!5 c0 m' y8 N$ @( L
另外Control里有个Pull Control是怎么一回事啊?0 u* b$ e2 I$ C' G( F, x+ E; 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比较好
+ a+ v/ r1 W3 k& j3 e( H) P在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即/ o4 h/ [: T7 B8 J5 f6 [6 T7 j
is ) q# V& W5 o3 x4 X
i : integer;4 q% P$ J; g. W* T
obj : object;
) O' K, C8 ?% ^' c( w0 O4 xta : table[object,datetime];& m( |2 @6 {6 p4 `% E
do- m: I% ~5 o1 g- z, l
ta.create;
% S8 B  E+ D+ E6 c/ N$ P! C4 nfor i := 1 to buffer.nummu loop
& H! S/ g1 a; o/ ^, ]1 y2 Vta[1,i] := buffer.mu(i);
& z; \2 F0 {/ ~5 X' L& d5 H2 Kta[2,i] := buffer.mu(i).time;  N9 v+ K1 ~& O) Z, P# e
next;
/ J3 Y7 E  d9 E' Bta.sort(2,up);
' e/ b7 T8 t+ Jobj := ta[1,1];
7 Y7 z2 A; f. W9 l# tobj.move(machine);
* A2 c7 o+ F% l, O" ~$ K+ F+ mend;
) j. ^7 Z+ v1 C( U7 N9 @' a$ B上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
# Z/ W- V1 `% [4 x& Q6 F. s嗯,可以不用placebuffer,用buffer比较好
# s& v& s4 K6 h  b3 S4 L* g* h在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
9 C! @$ _! B  J1 tis
% ?& t- v. ]& `+ J1 Xi : integer;1 h, }' C: @; a3 z! _$ Y$ {
obj : object;! d8 Q" M& I6 T8 ^: `6 x
ta : table[object,dateti ...
! }9 E" T, p1 q# [: w. D
非常感谢你的回答啊。8 H3 o2 B' U- u; B1 x7 E4 O5 K
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 ; k# P/ z( q7 h- e: |& r2 D+ d
嗯,可以不用placebuffer,用buffer比较好3 i1 I/ h# W: \4 [$ X' D
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即; ]. f5 q$ u' B  {' Y' L$ l" N( a
is 9 {' T6 {$ c  N1 b2 V5 W
i : integer;4 Z" v+ w6 V5 I% J+ ~
obj : object;9 c* T( \4 t7 ^4 h4 h6 y
ta : table[object,dateti ...
" z! }2 _- \# k0 w) U6 _
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。6 U# p4 k8 s( p9 V: ^
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 - c" m: L6 o9 i" h# E% F; f7 X
嗯,可以不用placebuffer,用buffer比较好
0 Y8 |: v9 R5 _& o在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即9 A5 m7 Q1 C) I( b+ j% l* g/ h3 C  k
is
4 ^+ j9 E9 P4 L+ w1 Wi : integer;0 j" W0 U6 z+ g' g: W* J- U
obj : object;
! X& o* I4 o* U: ita : table[object,dateti ...

) D2 O9 k; ?. v1 J! E- h
/ b3 M. w$ F0 i: k/ [! o我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
4 J4 D: e6 m" f1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
5 [. S9 J9 B: @2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。7 A0 n; @. x& X3 \
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
  U) C# B  e8 q  m# T
2 q# f8 ~. [6 d) V/ l" ?) [9 J7 w5 {& s" x% e
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
* F; p& ^$ y, {; D4 `1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

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

本版积分规则

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

GMT+8, 2026-6-27 14:08 , Processed in 0.016787 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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