设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6641|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!; I& A" b8 k3 u* E+ }
另外Control里有个Pull Control是怎么一回事啊?
# ?$ E$ D" \8 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比较好
4 ~6 w2 G% U9 h- P在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即7 J% {9 }( }! q1 X- P% }. Z; ?
is
! S: S2 P( v' J* T1 ti : integer;
) F+ l! q! r5 A9 \. fobj : object;( L" Y/ [( t2 O/ `- M* }
ta : table[object,datetime];% k; O* s  B- Y5 \: S5 K
do
: [$ D0 ~" A, q- _; Dta.create;
5 R% E6 S) ?- e1 t. [/ x2 r$ dfor i := 1 to buffer.nummu loop
! V3 i. e: C4 U- G' |6 ita[1,i] := buffer.mu(i);
. i5 r& }# |7 M: g9 ]ta[2,i] := buffer.mu(i).time;% o: _# N7 c; q9 P: x: h, W2 {( L
next;' B; x! V9 A; r' {/ N1 I
ta.sort(2,up);
2 I! j& }8 A0 A8 H4 e" W/ S  qobj := ta[1,1];+ r/ J6 a: F1 ]. u# A
obj.move(machine);
& t7 b" ~, \: Y& ~end;0 u# Z# L" \; `
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
/ Q* g' Q8 l1 P2 i0 L嗯,可以不用placebuffer,用buffer比较好& d3 c4 d& ]9 I
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即: {1 f/ P3 a6 D
is
+ Z" }+ J0 _  Q  h  ]* \9 D1 x0 xi : integer;) X1 t' h; f4 {# S& K/ h' Z. ?0 k
obj : object;
) R9 r8 i# u. }/ h9 Qta : table[object,dateti ...

2 b: H! T4 ^( ?, b3 M8 e非常感谢你的回答啊。
0 N2 m7 ]( p* o1 G0 S这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 ! c7 c$ {6 J6 s& w! x
嗯,可以不用placebuffer,用buffer比较好
3 Y9 p  c$ u, x: T" o# [在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
) M9 C! ~9 G# O2 {' W0 f+ \! Kis ' Z6 [3 ]. \- N4 ^; q# R& e3 T
i : integer;
" o/ o8 v8 {8 b8 y. Bobj : object;" c+ q* D: t8 A$ c( D+ i3 i  Z
ta : table[object,dateti ...

5 O5 `5 ]3 L; g9 i" _+ x* Aliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。" s) t4 }5 W4 D4 _9 y
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 ) \& }1 f2 p. c6 j* H
嗯,可以不用placebuffer,用buffer比较好
# a; h5 K2 p4 \( S5 v在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
2 Z7 H- c1 C; g7 p0 m+ \& Kis
( @, d! y7 J5 v7 Qi : integer;
7 q3 D9 L  }" c! e: L0 A; ]obj : object;) Z* N, s0 f6 D
ta : table[object,dateti ...

7 v. I) m2 {7 w# i7 K# v) |: [' W3 N' w( Y  D
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
. ]) q+ g. A6 M% C; a2 g1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
' |7 w6 @, r# H! ~3 Z4 ^" o2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。8 X9 {  W5 }+ y" b7 P6 c
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 * j) P7 r/ |0 m. P
. Y/ h5 P3 W; W- C3 h; o; V
) r# }& F4 v# E! o0 d
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。& G" l& u, X. Y: r6 p( p. @, n% {& M7 ^
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
# H7 V# `$ ~7 T8 L4 ]& @) w
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?8 Z5 C6 W9 K/ L' K
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
- q7 g5 E: m/ J; A: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即& V7 j& b( D! Y) c4 k; O
# 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# q+ T! W7 B9 X- N  Y2 ]
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
; f9 Y! Z8 R: ]; a+ @obj : object;
  M0 e; A4 z. T+ Q0 J% I' {) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];# L. y: w, D, t  Q. t( s
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo4 u( T. E, ]* [/ r7 L
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
/ V8 g3 P% ~9 j; }4 u/ K- }for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T( Q% C- A' {) t9 U
ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F8 z  K- X& E% t6 [( C' l. I
ta[2,i] := buffer.mu(i).time;- K' N. x4 u% g$ n. L2 l# W
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
: }' w& Y; e6 Z8 T$ O8 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  x1 l  X# U# y' K4 M$ Y- X- n/ {+ F0 N
obj := ta[1,1];
# l' g: _9 B8 Q1 W/ e: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);, w  s4 O: X: N
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J, A, u, d' M7 M2 ~7 ~  v
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-2 07:57 , Processed in 0.014134 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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