设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8316|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!
* M; L- }4 ?: u9 R( p% C另外Control里有个Pull Control是怎么一回事啊?
+ K3 ?# t* `7 ^- t$ Q& b- o; f还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好
7 ~# i/ Z+ U! K% I8 j( p6 _2 V在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即/ L: T: f6 B( |7 k/ {
is ( D4 S8 Z+ \" _2 n  F8 @6 i
i : integer;2 ], Z! i, |. @0 Z. m9 y( F. y- g
obj : object;4 s3 [- c( ~3 s2 f
ta : table[object,datetime];, G4 F: F9 z: c- U4 H  _9 T0 A
do0 }% P) i" F' S1 R$ N
ta.create;9 P, {. D) o, V6 y
for i := 1 to buffer.nummu loop
7 s% E2 H! m- s" y* cta[1,i] := buffer.mu(i);
% l/ H$ _3 E7 K6 N* g% Wta[2,i] := buffer.mu(i).time;/ Y: Q* G8 V" c( u
next;
6 m& Q1 L' h8 K  Q0 yta.sort(2,up);$ C: E; |6 N  R
obj := ta[1,1];
/ z* t" }" ?, z- J, C% wobj.move(machine);
" w, I/ K4 T. z3 s+ b, A6 ?end;
4 J0 }3 F9 B8 ?& @: x8 P1 v' B% r" K' y上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 ( t- D. n- T# {0 L* y
嗯,可以不用placebuffer,用buffer比较好* G+ `2 {, L% h; @' a
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即* j. G7 z2 G6 {! z8 k! x4 f- v
is . ~0 _, b$ W5 ]  O4 _
i : integer;
; S2 u9 [: v4 m3 q, z1 Z: {( k8 _obj : object;" B' i2 a) v/ d% g; s
ta : table[object,dateti ...
# [# o( ~1 ]: M/ ~0 g
非常感谢你的回答啊。2 }- }, N* o0 N/ Y& Z
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 4 X- y9 H  M' t1 |% b
嗯,可以不用placebuffer,用buffer比较好
4 {# l; B5 H2 h% b9 k& u. h: a在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
9 C8 v+ m& P, h4 Cis 4 B/ m. K# B- N% M
i : integer;( V' ~4 _5 \  L3 |
obj : object;
# g3 k# E5 L  S0 }) j8 v" Yta : table[object,dateti ...
, Q* ^" _) N6 g" j$ S
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
  A0 X  p8 \3 t; s+ J请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 : @5 v' M2 B0 q+ [; ]) Z; Z0 {
嗯,可以不用placebuffer,用buffer比较好
. M% x4 J4 Q& d" q! F( ^在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
; j6 {9 S) |4 {+ X. Gis ! z# b5 |0 O+ r( _/ j# \
i : integer;
, c; V2 {+ ~) o1 J! }obj : object;# I6 t* d( H1 }9 U
ta : table[object,dateti ...
. E+ f# u4 P1 T% O8 I

" F4 c1 `6 F8 y1 G4 \我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。. I; M& n0 o8 L
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??. `- f+ z' f" q6 F% A
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
4 L9 y7 U; I8 I& q; B个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
% x6 ]2 [" s$ i+ T9 o% C1 T
9 T. N( G6 p: R' ]) W6 B, n4 M; J8 E) x
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。/ g9 g7 M3 X" |( Z* M
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

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

本版积分规则

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

GMT+8, 2026-3-26 23:30 , Processed in 0.018514 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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