设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8001|回复: 6

[求助] 调度优先级

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

最佳答案

查看完整内容

嗯,可以不用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比较好
" ?1 s1 F1 O! V  Q( q在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即/ g% C: ]- }& Q' \) T- }# [
is
( ?4 F6 [. a6 h0 J" Si : integer;
6 G! |) m* \2 o, C8 U* e' eobj : object;0 |* f, v# z. @, l- [# [) Z* [( [
ta : table[object,datetime];
7 s9 J% [+ z/ G6 I5 [" b6 E# Cdo7 N. w+ [. Q% _7 w% e* A
ta.create;
9 ^% o$ W/ E$ S& G1 ?3 v5 tfor i := 1 to buffer.nummu loop% s% F; o7 D0 E5 e" M; H" ~) C2 R
ta[1,i] := buffer.mu(i);
+ |$ K, a" j& @" U9 E/ rta[2,i] := buffer.mu(i).time;
0 _& I! X$ c$ j: U4 X1 Nnext;( ~- h& p9 |& x
ta.sort(2,up);
, u) Y  e) O! C$ ~5 [3 Jobj := ta[1,1];$ X- @3 l' G9 a" O0 }* {* |9 S$ f3 V+ A3 f
obj.move(machine);
: |6 Y5 h  h, J: Y# Y7 ^- z' lend;# Y& Z' Y8 s, p7 }2 z5 W% q
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
0 t. ]+ v7 G, h' G& G3 t7 R1 c嗯,可以不用placebuffer,用buffer比较好  X& ?  k$ b! K+ c' K0 G! i
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
, C6 k8 q. l1 D/ L7 Eis
1 ]) m0 ^/ G; s1 Ui : integer;2 A) A& A0 |. [3 S2 i
obj : object;4 G* F8 j8 d" m* M) l/ B$ e
ta : table[object,dateti ...

8 d! b' z, `: R( @' {9 [非常感谢你的回答啊。
  W! j+ o4 r% e+ M: S这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
( X0 F7 C  b8 I$ c嗯,可以不用placebuffer,用buffer比较好! V( M9 {: s, [2 J, C9 S0 _# X
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即1 o* f4 S* N  X3 c( D7 t2 S
is & K6 q; }- f) a  i! S7 t
i : integer;
3 R5 y+ L/ P& X) n" Vobj : object;; X" o1 G- Y( i: Q+ E% q8 t
ta : table[object,dateti ...
: s* ]' S* K8 h0 n
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。7 E$ I- \3 T' P4 d1 v
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 , P( m, ^9 |% A" ]
嗯,可以不用placebuffer,用buffer比较好
1 L8 @7 O7 V( y# X在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即7 q: t! ?7 Z4 O. A
is : {4 F, Y& S/ w3 [5 C% h
i : integer;
2 p4 E+ N0 E0 J  \obj : object;
' }! f6 S9 B, k2 P7 S7 W( o) l: wta : table[object,dateti ...
# Q1 }9 v8 L+ Q  O$ ~
. ?& T+ }( q8 A- X
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
- t8 X3 J8 o& {7 v1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??/ B0 e4 ^9 v, R' o2 m! K
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
* ~# z$ b! W/ w8 p/ j5 F个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 . ~4 d% U, M0 y4 D4 q
/ {8 V& v+ s: G) b5 i
, i) U* b- u/ }! E
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
1 }# R$ C, J5 r  k5 D$ W1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
9 |6 a8 p. L8 q
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?4 x3 F7 ~6 G9 o
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好7 g( K9 G' c' ?* O
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
) c, P# a# g. N; A' u# Q# 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  c6 {+ H8 u' S" v8 M$ p5 e# [
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q$ o. K9 }5 x: w4 ]
obj : object;+ p& O: @- Z6 F
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
( n: H6 i: I" h/ e- @* |) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
* ^/ g: b1 A+ N+ Z9 U& b. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m! b/ x6 \9 M9 q8 W' b( b. }+ U
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T: e: _2 \) E6 ^$ ]3 `; c
ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F, M9 U8 n/ F0 X- ]$ C3 Q3 O! _' ?" H1 p
ta[2,i] := buffer.mu(i).time;& B/ ?1 `  b9 {$ i% G- |1 o4 i
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;# S  O. e7 f5 i5 W8 W  z  J$ V
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; X2 q+ ]' U$ s9 f$ z3 z7 k
obj := ta[1,1];; g: o- C" ^# R& i3 c1 G. T( v
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);2 }3 q2 @/ x! \9 V) e  ~# B9 U* T4 Z
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
3 m' \! t( {; G/ o* C: Z" @上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-4 14:24 , Processed in 0.017514 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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