设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8895|回复: 6

[求助] 调度优先级

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

最佳答案

查看完整内容

嗯,可以不用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比较好9 u& D5 b+ F- c6 h# ~# H# Q  y: o9 q
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
. u( |  t6 g1 {% n  q, Sis
, |9 H6 j3 f3 a& l/ o& Vi : integer;) F4 A% X+ n( J
obj : object;& q2 p6 P: N& d8 T; Y
ta : table[object,datetime];: \+ D& z4 j  i* x* o
do8 _& h( _: u! D4 q6 X( ^
ta.create;3 ~0 P" S$ T: @; b& O9 i  v$ P" l
for i := 1 to buffer.nummu loop
' k* B& }- e7 o2 M3 a7 Q; ~ta[1,i] := buffer.mu(i);
5 P1 Y0 R1 g& M! Dta[2,i] := buffer.mu(i).time;( f4 {. x2 E) \7 b9 @2 }; T
next;7 V- r3 _1 P4 V' A( [, X0 x+ ^
ta.sort(2,up);$ E; i4 L6 d7 ~8 A! a
obj := ta[1,1];
7 E: x2 C: U8 N1 I4 gobj.move(machine);
2 D- n6 Y- U: I  wend;8 D$ b: u- M, [6 g, Q* k; G! \
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
# T  \! e* E! [3 t嗯,可以不用placebuffer,用buffer比较好
5 p* U  {3 r5 x! C在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
- |: K3 c7 `. {5 m8 h) I" W+ Sis " L( ~% r7 \1 d# L, t& e8 i1 a+ s
i : integer;
' ]2 b# H* }) U& }. l# j! fobj : object;7 Q" B- E+ h2 |7 V9 o+ m0 [% A2 O
ta : table[object,dateti ...

5 h. U. ^- t' T非常感谢你的回答啊。
8 L3 p7 ]" ~8 G0 d. p% ]这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 9 W( Q- O  u" b, ]$ K$ Q  x, y
嗯,可以不用placebuffer,用buffer比较好
* b; l2 M9 f" t0 A) f在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即% X9 l& S& p! o+ O9 W* X
is
9 L4 W( }/ l5 o0 S+ C6 yi : integer;+ K! `/ n4 |. J, k2 G
obj : object;) S) v& _3 x' T6 q
ta : table[object,dateti ...
; E; v! _& D' c: L* I
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。5 i1 t' ^7 r9 z
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
0 w9 M) U1 z; |嗯,可以不用placebuffer,用buffer比较好+ w' s$ C7 D1 P9 O
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
3 A. |' t6 T  Xis
9 s1 ~7 v& W, p: ?) X7 k% _i : integer;# V" @0 x: m7 n. M' V
obj : object;2 @1 D% }+ ?& k0 ~5 ]2 h
ta : table[object,dateti ...
, k! ~! ~- K) t) N9 B5 U1 T

/ x# q  T" ~6 X& h( `2 F  x8 ~! \1 y我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。. {. G4 G* N. f" T1 A7 O2 o$ U4 k
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
8 w, p+ E8 ?# Z' Z/ |2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。7 M0 B9 c" V, G3 @1 I) F0 N9 ~
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
) E5 A6 n! d* S5 i. x
) Q( x) ~+ ?; n( r; l+ y$ r5 B5 }' x6 r: m: s. O5 u
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。) n$ z' J5 x3 S
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

0 u; n" f% a4 v+ a. ~1 |是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
9 J  ?/ K1 E2 K2 e9 R: P' Y感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
( o, s/ A: f! b$ B# W: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
  L8 Y2 L, A- M% e, M# 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) z' x+ L7 V+ s+ R8 d: K# b- h
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q8 q7 L5 u6 r, U
obj : object;
( Y3 R' Y) N/ Q7 R; z9 S+ R9 a0 `) W3 ^) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];) F' }: D9 y. H8 P: p( f& i
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
4 D7 h* L& ]$ o; m: B  H) q. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m' U0 v; W+ Z2 g" t+ @
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
) g( c1 ?; _1 e7 |& T& jta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
% x$ ?, d, [3 I% p( \9 Nta[2,i] := buffer.mu(i).time;4 b3 a2 K4 G. Y0 e; O1 H
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
: L9 y2 `% R$ X5 g: v8 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
  h! e- G* ?. e* m( m4 R0 O2 V1 \obj := ta[1,1];
8 V8 L! e; R/ C( k7 g- v: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
0 l# c! R7 v: E' _% m" i/ `$ s: \4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
8 x* a) ^% }# E上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-2 07:52 , Processed in 0.016500 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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