设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6715|回复: 6

[求助] 调度优先级

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

最佳答案

查看完整内容

嗯,可以不用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比较好
+ d" J4 m3 B- X- r: a在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
+ }7 r1 c3 [4 g0 uis $ C- I, g( z, |7 c% R. H
i : integer;3 d9 Q+ Z5 Z! R; |
obj : object;
, t, e% f; [' V& W% zta : table[object,datetime];
$ W- d4 d/ _+ n, t% `; F9 [do0 Z9 G/ t2 _6 N7 l7 \1 @
ta.create;& V' n) ~+ E" h& s2 C
for i := 1 to buffer.nummu loop, `* k6 e' d2 u. E
ta[1,i] := buffer.mu(i);
3 Q% F( S# k$ \2 C9 E# L8 xta[2,i] := buffer.mu(i).time;
, L/ E3 ]) ?' M1 m' y3 T8 ~2 Bnext;4 r; y6 k, n/ Z; t" o# `: e' |
ta.sort(2,up);: i5 E$ n3 l: S+ F, x
obj := ta[1,1];+ j1 ]7 ^' _! r
obj.move(machine);* h* Z# r3 ]# ]$ m
end;
/ h3 t2 G% R/ S7 r- M上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 * I( S( A# F5 Q1 H& Q
嗯,可以不用placebuffer,用buffer比较好
7 K. @8 w3 A9 T5 d! F5 y# |" P4 K在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即* R# k9 [$ }! r& d& {7 E
is ; i+ y; Y5 ^- g" R5 e0 p+ B  E! }
i : integer;; i2 S% s8 E- L) @. m! G# H
obj : object;3 D* |+ o/ p) i8 m8 ^, M
ta : table[object,dateti ...

) d, R+ L: z) h6 N$ p  V% W+ y* P非常感谢你的回答啊。
3 p# P, x# j8 `7 [' y这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 * s7 M5 k0 i5 Z& G  S
嗯,可以不用placebuffer,用buffer比较好
) `+ ~. q/ Z6 Q; S& C4 |% M在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即, Z1 A" v$ [" @( r, }
is
+ g4 m- Z. x6 E1 l3 f0 Bi : integer;
$ a2 H: W4 \% Y' O- Tobj : object;  `' n% N) C2 L
ta : table[object,dateti ...
# M* x0 e0 C, R
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。' A, I2 k3 Z1 B/ v. v
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
9 `* {) m2 l; R8 V2 i" W1 e0 S. L3 S7 z* M嗯,可以不用placebuffer,用buffer比较好
! C: k- |' E/ K1 [/ W3 l; \在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即. B. T9 _" E9 ^6 S* m! e
is 3 \& T/ q% \% u* M5 G. Z
i : integer;1 h+ u, e; K( ~; j
obj : object;3 l. i; ]8 f* v' ^) e* n
ta : table[object,dateti ...

4 ^2 H+ k/ l# [4 C) ?9 k( ~5 g8 `3 r/ J- I1 D
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。8 [8 Q: N" i' ?1 D3 u& f
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
0 r" E5 R6 {7 H0 {1 ]' r2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
% \1 @; U8 }6 g# N* G& d7 E个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 % [# F# ~9 i9 C0 A! |6 b
) i+ L  [% s7 N

9 S. [+ O. j( g5 J; x7 m我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
4 g) R0 E1 M5 a# o1 b1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
: ~" X3 t" @% W9 d
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
9 U1 k7 K  s3 U& U感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好; \; n. i  k! o1 `6 a' E- }1 M
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即1 P" M& ?3 {  d  R3 A, O
# 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
8 R" U' X8 d$ k$ s2 V" r5 Q& {i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
. E5 S7 _' `" _% mobj : object;
6 Y6 f; W  R5 h6 }% |) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];  y# |8 U& A9 n0 x! Y
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
+ t6 F1 S0 |/ B7 c. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m; c4 y) v1 F4 S8 ~  |
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T' N3 A2 Z3 O2 R* n4 ?2 H, a
ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
* E# ~/ Q: W  W5 o" I1 h( }! tta[2,i] := buffer.mu(i).time;8 A/ R% D/ Q% h" B% x0 Z
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;, a0 z$ u2 H( R5 a; G
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
/ K; ^5 g3 j4 o$ cobj := ta[1,1];, k+ B# J. \& S* b% {& V# w
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);4 p* ?  S1 G5 |4 H' C+ c
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
* w% C* V1 p) `: l- m" ~" B* Y+ U上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-12 17:53 , Processed in 0.015623 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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