设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9194|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!
6 z# f! g' L* u8 a- g6 |另外Control里有个Pull Control是怎么一回事啊?
! c: L- Y; ^  c# M* M还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好* K, H) E/ P1 ]
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
( s$ l5 r  t# E/ Sis 6 P7 H) p7 W# Y; K+ |# G
i : integer;7 v1 z- S6 e& I7 V
obj : object;
5 \* y8 G* \) \. ^1 u1 ?ta : table[object,datetime];, M  ?- s. a& B; d) F! w  \% v
do- |6 T$ ?* \. W+ B4 h
ta.create;
5 V! ^# a- c  l  ]for i := 1 to buffer.nummu loop
- c4 b6 M8 S" H3 Q2 ]$ ?$ Y1 Vta[1,i] := buffer.mu(i);
4 c/ C- `% D' T( [& h! f& g( ]& kta[2,i] := buffer.mu(i).time;
, {+ x, w* \4 q% D- G$ Xnext;
7 d6 H1 O1 m6 x1 Z4 ata.sort(2,up);
; w' f0 c1 E! |4 E' ^4 G' `obj := ta[1,1];
. Q9 ~2 W5 _+ x. u! uobj.move(machine);/ u- e3 Q! n. r+ a
end;: q! }3 F+ q6 @5 z6 c6 g
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 3 U! ^7 |( o0 ?$ O% B. x8 D
嗯,可以不用placebuffer,用buffer比较好/ P( `! o! g& F# R' g
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
& U- K$ |4 g: c9 s4 B& qis
2 R/ T0 ]1 q' B: y' |  ki : integer;2 h- l6 v7 L# b0 d6 p+ g& T
obj : object;
9 [- w  ?1 s3 T& g: `ta : table[object,dateti ...

* L' D) N7 E3 k, ^. c" Q非常感谢你的回答啊。+ B8 @. p& A" O8 x5 J9 M
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 # _; a" r+ |0 \9 G; Q
嗯,可以不用placebuffer,用buffer比较好' u" X6 x0 ?& ^5 u+ [
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
2 i- d# u# f4 {7 t1 {$ u* Nis
4 d1 S- h4 k' o  d7 B# Wi : integer;: A$ `8 d' }/ g) J6 P
obj : object;
+ U# O& n' s4 k3 d9 G8 S  Dta : table[object,dateti ...

, I! ]* I/ z* c. c1 x) @liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
. y. |8 J# K: `& ^$ ^: r请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表   ?) R( k0 B5 L- Z- H2 }* T
嗯,可以不用placebuffer,用buffer比较好7 }% F; e4 C3 O: b3 i- [4 r. R
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
6 D8 m6 u' P2 h, w1 D. q! u* v! }; ^is
) A" J) G4 M! {i : integer;
' I+ w4 V& _3 i! B! }8 Y8 |obj : object;0 w# d$ ~$ ]  q) l8 f  e1 J- d
ta : table[object,dateti ...
, }8 F; z; C1 ?

2 O' ~* P7 S1 c: X+ w5 z9 c我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。& W% G1 D' p5 r8 }2 B
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
  z6 I0 Y) C! r1 \2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。/ j5 x, E7 g+ @7 A
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 ; c2 T! G$ G* k8 R; M+ p6 i! h- c
/ Q# S& a% K- [  u5 Z1 @6 j, B
6 R! v, y# K: v: D8 X& X
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。) x( B8 R" \1 b5 p) A9 m' @7 P
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
5 U5 B" P% Y8 c; P8 j
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
! F/ c/ b8 s0 l5 R感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
& X+ F# O) J# W2 j1 Q0 X* a3 r4 X: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
0 @5 e; o; J1 Z8 F# 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  c7 I/ o8 w$ y- N( V$ C
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
9 ^' g( b- A1 R# v% S" }obj : object;* R0 P/ r7 h4 j0 \& X0 }- p
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];" T+ H& }  z1 R0 S& ^2 q6 S
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo& D$ ~0 X6 i8 h7 P3 h' w
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m, d/ u  M2 o* N4 o2 n' W& |8 v
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
, x" e8 h- g& }) |& ~ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
: ?* J9 h6 u7 ?/ w4 e: Dta[2,i] := buffer.mu(i).time;
2 E$ _6 C0 e2 B9 E4 |' Y/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
4 E% g+ e& k. h+ f1 U8 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- q; W9 A6 u8 E
obj := ta[1,1];
0 M% Z4 j3 Q5 }3 {! z* X" d4 _+ v: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);- i5 {5 L2 C+ k
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
+ {, R, g' X5 L上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-25 18:24 , Processed in 0.015556 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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