设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9117|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!
. ~  b" W: H. r5 O6 k) w另外Control里有个Pull Control是怎么一回事啊?/ Z  h, T, n! }  N: |/ J
还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好5 f" x4 D6 ^& p, g
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即9 Q8 P  S8 n4 ~2 Z  o; [
is " r9 n- r1 R* e8 X- i. v8 `
i : integer;
( s" S, s/ j- Q  ]$ s5 eobj : object;
9 V5 H6 u2 @( tta : table[object,datetime];
7 j5 m5 T( d# l3 q- Fdo: e2 V- q* M9 ~; U/ `6 b: v
ta.create;
. w$ R5 l2 t% t7 g0 g7 a  Xfor i := 1 to buffer.nummu loop
( |7 Z# F9 i* V3 S& |4 l8 tta[1,i] := buffer.mu(i);* x5 {9 G% d/ C4 `; w' k1 A* L
ta[2,i] := buffer.mu(i).time;) ~* G6 Y) S& f: h' _5 i' W3 H
next;5 e$ Z2 E8 n; B( R3 m' [* Y6 K  E
ta.sort(2,up);  o% h/ O" y- S- b
obj := ta[1,1];5 E3 q  F8 g7 q2 E, i
obj.move(machine);" G8 f0 K; y, I( z1 p! B8 b6 e
end;2 i: d4 c, G: M! F1 R# b
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 8 s0 g8 T3 B( q& W2 l
嗯,可以不用placebuffer,用buffer比较好  u+ h- Z' X4 Q) W* D
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即2 C! \* @) H3 J, J- y5 b4 a
is 9 m% Z) a+ d  O% J) N
i : integer;6 b" ^* R9 M8 u0 y: C% _' L
obj : object;# \+ h9 N& q7 V" l* T  M7 b" }5 V
ta : table[object,dateti ...

) h8 ]7 f5 M/ {( o$ V! T* x非常感谢你的回答啊。' V3 U% ^" I, ?3 ]2 L
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
+ a" w/ o9 m7 ]& e4 b: j7 R嗯,可以不用placebuffer,用buffer比较好* [0 N% @* k$ O+ D( O3 w5 @
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
0 S5 }, F& k) J* vis . i( z( M( E3 {# ^7 h
i : integer;
; R, P% u. I0 e: oobj : object;
: h: F$ Y3 d( @& s9 R1 yta : table[object,dateti ...
5 Q( k! Q" f9 i. a8 z4 O/ h  |1 Y! l
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
* A6 v$ h" ^- q. w! i# G请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 & K( f& ~9 \) k- `( J! v* v1 |
嗯,可以不用placebuffer,用buffer比较好% x/ @0 Z5 I& K, N0 ^( j
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
, u5 V" v. D; ?4 {is
- @+ J+ M3 s" ~: `( Yi : integer;
& t% a; I- Z# Gobj : object;
" {8 K5 y) W' A1 d4 n2 [7 N1 zta : table[object,dateti ...
0 }# L) T- V8 U) b( x! F) \
+ |: w' b" ^" {
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
; i! o. Q+ v/ g3 k/ l1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
7 Z6 ]! \" x3 S' i+ `1 n: R2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。' U/ \  j8 T' O4 a' f* v
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 7 {, V  N, [+ m; r0 Z
- x# ^! {: f0 T
* i4 c5 k% ^8 V: Q
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
) v/ \0 |" a/ c- T1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
; v, [! x) Z, f& ?/ C  J
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?( u, w7 D6 G/ a9 F" B+ {4 V5 J
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
* c' X6 x6 {, J7 H: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
) {! p4 V" G* P- I! K# 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
# m* d7 u: S8 r# u8 \i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q2 \7 O  |' r  J9 y( s5 I& K1 `
obj : object;
/ ~% L+ z0 n9 F8 T9 |) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
: l: _1 W( \* P( E, T) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo+ {# U+ ~2 o7 d; G6 U1 o- R6 J7 ~% i
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m( _% Z% y+ w& X' _
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T6 D1 @: {4 @8 t5 ^% S
ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F; L3 M0 U  V1 F" |& q3 P! r9 C
ta[2,i] := buffer.mu(i).time;
7 y  j: O( M; C/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
/ Z* e) S+ [, f* c" A6 w8 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) u" S/ W4 y* `" x; C9 v% D  s5 F
obj := ta[1,1];  D* W4 L* E3 \- F3 h; q' w' o
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
8 g" F4 m6 W4 }! X9 K- F7 R: ]$ ?4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J1 Z2 O& U' d; f3 s6 s* m2 l$ @$ s
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-19 23:33 , Processed in 0.018972 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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