设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6653|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!" h. r0 ]- I7 \+ d' [4 Z
另外Control里有个Pull Control是怎么一回事啊?7 v5 z, E' u4 Z3 S8 q: t: S
还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好. p! V4 M$ P5 K7 P. X
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即6 a% V: T) G' E
is
7 _2 \; s6 I0 i; Bi : integer;/ N" I+ w" b; V$ j
obj : object;
8 }! a8 L, i8 r" A5 m- lta : table[object,datetime];
5 g- Y$ o' e2 S- \3 P7 Edo
6 b0 |; O7 n5 Z8 {/ tta.create;
$ D( v' w' ^# v  T, V9 w2 \for i := 1 to buffer.nummu loop% H2 c6 O+ @: D  M: \% h* f4 `# x7 u
ta[1,i] := buffer.mu(i);
0 g: @! r+ m8 M& R! n6 Zta[2,i] := buffer.mu(i).time;
$ D/ o+ \$ f5 v, T2 u5 j8 {next;
% Q8 f- b8 I* L: ]7 Cta.sort(2,up);: g3 L& @6 h8 |
obj := ta[1,1];
4 w3 U9 I' E; z. G" x, l& k7 W1 dobj.move(machine);" z3 {& i  B, ~- W, H2 m
end;9 S! n8 U2 R- }. y7 m2 i0 ^% F$ @
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 + {$ t# g- v( n* ?6 \8 g4 f, t
嗯,可以不用placebuffer,用buffer比较好. |: n, }$ G* ^; L% D5 z
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
3 N: O# U5 ]7 F" k% fis & j8 H( T- P  Y* S  f3 K
i : integer;6 X: _* p  Y0 T9 r/ N
obj : object;! z9 `  m1 ?3 j) ]1 u( t$ ^  |- m
ta : table[object,dateti ...

9 {# {! [' e1 O0 Q非常感谢你的回答啊。
' N; ^0 `; e: h- \7 v这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
+ |. I  c& H7 N2 Q: M1 I% \2 d嗯,可以不用placebuffer,用buffer比较好1 j5 |& ^" V' }
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即+ n  v. P) u; G) R( k- X- W
is ' D( M1 g2 C9 o6 Y0 f: I
i : integer;
  [" z2 G9 A& X. X  e, Tobj : object;
# g9 _1 ?# K( P, a' c8 ita : table[object,dateti ...

8 \! K# C/ T' Y# _9 Sliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。& k8 m+ A4 ^2 t1 r% J
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 ! H7 u( Z2 _( T, M4 }* V
嗯,可以不用placebuffer,用buffer比较好
& z( f+ N# \% |5 Y/ C8 t/ }9 N在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
$ d& p' T4 }# }is ! C0 J8 G1 y! @) Y/ Y' ]
i : integer;& @; g1 T6 b  T  |0 N
obj : object;' A+ Z6 {6 @4 s
ta : table[object,dateti ...

" V/ {' Q! _! ]3 d! H
1 _# e  L4 b- M% r' @我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。8 W& M- ]! M& b; j: p8 o
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
# X7 d1 Y# u" j4 ~- }2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。: W# k' O, L# A( I' r
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 ' M2 t% `* Y5 k" F' w* c6 R- V
' M: V- B% N& M7 |& q. J' O, e
  f' `. I: o. N, v$ h' u. V2 i, F
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
( V5 C( i0 j; a  G0 P* {1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

2 Q, F) Y+ c  Y是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
' @; L6 s& x( D/ b, ?感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好+ Z3 W' r+ x: a& p  Q
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即/ e( A* Y- z, Y9 H( P, ?
# 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  c6 j6 z3 l' S1 \4 m/ L9 Z
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q+ d8 Y% K+ b. L" y
obj : object;
! `: B) \. {. L1 O9 B4 M$ x) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];. P9 [, `7 q0 q# Y9 i( g. c
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
' |7 d7 n9 ?( v# Z. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m, ~$ s0 L3 ^5 K3 w* r
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
1 J! R0 U/ e; V% M0 _1 Fta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F- ]  g/ r! `- S- w# z# f2 M8 b
ta[2,i] := buffer.mu(i).time;
8 Z6 q* V, S9 T" h* f% x/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
; @  [( B) D, v+ L# `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, X6 R6 F5 T$ F& [) V3 ?# u
obj := ta[1,1];9 u* k3 g5 f1 O# y& P1 `
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
0 M! E4 v% f' ^$ a" Z; @7 w4 Q4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J3 t* B6 X. q  G( J# C! R) Z/ s' ?6 S
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-4 15:53 , Processed in 0.016167 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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