设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9356|回复: 6

[求助] 调度优先级

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

最佳答案

查看完整内容

嗯,可以不用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比较好! g6 r; z' d- m+ h
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
: I9 o% V! C- j( b2 L8 Q* ~is " |. `" N) B; Q3 `: d9 a
i : integer;4 d, o/ M+ e! x/ j: R1 t2 A8 [
obj : object;
( M7 I5 _  \( |4 i# wta : table[object,datetime];
* R- n" c0 ?4 a) P& Ado
/ l" h0 Q! z' Bta.create;
3 @9 F- ?5 ~1 L! ?for i := 1 to buffer.nummu loop
% Y) Q3 ?( r8 [& x+ h% _ta[1,i] := buffer.mu(i);" T+ [# j- i8 |" f6 N
ta[2,i] := buffer.mu(i).time;
" R- C8 R% M& @& C$ J5 I, A& X1 F9 xnext;
6 `7 o4 G' w& ~ta.sort(2,up);5 Z* Y+ q# D1 `6 |! y4 z1 A
obj := ta[1,1];
, x. s7 W- g" Qobj.move(machine);8 B+ \. b6 {" O% d7 A* h9 A1 X
end;
5 o  S+ M; `7 A) L8 H/ I上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
/ Q. I# q8 g$ K5 G% d: R' R嗯,可以不用placebuffer,用buffer比较好
& l4 |- L. Z+ |1 h0 Z在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
0 Z& X( f" x8 ^2 S' @7 @9 z$ Tis
2 P4 B+ k- E" _7 b, b' w3 @3 Ki : integer;
& C( r+ K; j) z8 bobj : object;/ n) B2 [' D7 Q; ~' w2 c! j
ta : table[object,dateti ...

8 p. n% P; j! _7 ^0 K' ~2 R非常感谢你的回答啊。0 p- y- w- J! {8 d
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
% `7 o% T4 s1 d- @" L5 @7 h  F, h嗯,可以不用placebuffer,用buffer比较好
0 A8 P: p; ^( ?4 r在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即8 ], Y5 I6 z! j
is
0 H' k, K. G6 a1 f& r. _# S' Wi : integer;6 G' K# }/ E3 }* f& [+ y1 Y( s
obj : object;0 x3 N  O& q" o' X1 S
ta : table[object,dateti ...
( I, K* y9 i& ^5 @( r$ F
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。: O. u+ f' b+ Q6 M4 ~
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
8 q, ^- L2 L0 x+ Q嗯,可以不用placebuffer,用buffer比较好0 r) K, P3 A  R. p
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
! G+ O# \% h0 }9 Xis
/ B0 y( e& U, W( ]! X) Bi : integer;; ^: d" _1 ~7 H; b- C
obj : object;1 e# d" Z. U7 ^, k
ta : table[object,dateti ...

- o8 }* |; u1 n
5 U6 J' `; w" g# a5 z我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
! r( R+ y  x- f6 h, |8 x7 q1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
  V# j$ K; m& N1 j( ~2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
/ V& |: Q) V: |. L" L% @) n个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表   E& s1 V+ m* W3 Q9 N

8 \+ ?6 G! O9 }$ q% O! D) C# f) u5 f
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
" s  K4 u4 V- D! K4 w1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
/ [4 \% h8 G, d/ h1 B
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?1 H& m  u7 d) G6 S! G/ U" a5 e
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
2 [7 \9 X' e' I) \& V9 k5 N4 A: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即7 w4 l: H" k7 k/ T/ }
# 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
3 {/ N9 S& y! R6 K9 |* Ui : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
/ D% o& }! J/ q% C6 n7 [2 fobj : object;/ y1 N6 \6 C3 ~
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
' G/ Y9 c. M2 c. H. K2 ]# _7 S) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
0 v( a5 Z: U7 ~* B+ o5 l, D. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m' X7 i& n" v0 @( a& ]
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T2 n. E! `$ ^% e: d
ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
/ b4 j8 d8 b; O0 d5 X4 Z/ mta[2,i] := buffer.mu(i).time;
2 P- D1 T' r. ]7 r/ ?6 h" E! O/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;7 \, }. I; o/ p- P% i6 K  T/ Y! d
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, X. a* c0 z! f$ i& q+ }
obj := ta[1,1];& B5 k: P8 g8 K& ]7 v: C5 u4 w
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
, ^& b  `9 _5 L3 Q4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J8 X! H3 h2 @$ k/ h4 k% e
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-4 22:11 , Processed in 0.015817 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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