设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9345|回复: 6

[求助] 调度优先级

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

最佳答案

查看完整内容

嗯,可以不用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比较好
) Y6 r+ H! G# Z$ J7 L! `: p; D在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即1 @6 |3 ^" q+ H' y" V! Y
is
( Z- x5 U' t3 V8 Q3 T  V& ui : integer;3 U2 B+ [4 t: x3 `5 V9 F. \4 {
obj : object;
+ Q: j1 l" l* ^5 s9 q; z0 Xta : table[object,datetime];
5 u* _- i4 D0 O$ G" @, i3 H; Cdo
* Y& _- U6 i( r1 A/ Cta.create;
* m' [" ?* l, ^6 W+ s. a4 A& F/ sfor i := 1 to buffer.nummu loop2 F1 t* V7 [0 e9 t- v
ta[1,i] := buffer.mu(i);1 \( A- n; w1 Z9 m. o
ta[2,i] := buffer.mu(i).time;$ ?% S8 |1 {# k3 M1 g+ [; s
next;  B+ B  U$ N, _0 |4 c5 o
ta.sort(2,up);/ W- r. ~4 E' M8 b- u, k
obj := ta[1,1];1 ?4 F; H$ `. a9 e0 @* e+ ?
obj.move(machine);4 S' |/ v# M7 U8 Q
end;
0 k0 \( j7 u! I5 @上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 . i/ |! i8 M# o* W$ I
嗯,可以不用placebuffer,用buffer比较好: s! d5 G6 F3 s. T; P
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即: p* u; U: @7 G( f# ~5 T4 S; F
is 6 X4 m8 K7 D/ U! T$ V, }' k. `8 z
i : integer;
' M2 G1 \2 U' M6 T* J8 @& bobj : object;
! v* @  X: |+ ~: W. K. V2 C* u! [ta : table[object,dateti ...
# g' \8 h  x  ~# t( h
非常感谢你的回答啊。" i$ j- a0 w3 e$ Z% p4 I) r, Z
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 ; ?% b1 \0 K4 u
嗯,可以不用placebuffer,用buffer比较好1 _4 f5 ?& E; C0 ~6 |% z' v
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
& o! W- }# Q( m1 D# C" cis
7 J" L7 f: |5 a' n! u. G0 Di : integer;3 v8 W  E# c4 ^, W. f) H* R% _
obj : object;
( M/ Y7 m1 {, S: i+ Wta : table[object,dateti ...

1 [3 K9 }+ A$ q1 N1 Yliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。  u, _! O7 n" K2 o- t0 W4 z: _
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
) \* c/ b5 ^6 \8 W1 m嗯,可以不用placebuffer,用buffer比较好
" \6 k7 m6 ]$ J在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
: H, ~& n* U  S1 ^% x) F) Lis
4 h6 K2 w: ]) D5 H" U( Si : integer;/ d7 t" T, I( }4 `
obj : object;
$ x& K7 \! v3 f) M/ C6 W! Yta : table[object,dateti ...
3 a' l+ H2 D5 Y. D7 ^! _" ?

) n. t" Z! m0 p& z8 D我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。0 L+ ]8 L: J* e& T& y3 q
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
" Y4 f! |( C, ~5 K" G; G2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
+ E- t$ c+ _7 E$ O! ~) x个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
  e3 z2 g* v( E6 C
: H0 C" C! N# I) A, |: F/ B- V8 z5 e3 U/ a0 V3 b
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
% L7 Q( f; E" m5 O1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

$ K$ K. y# ?3 k; z! ?  n, ?是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?" e3 k8 R" ^; h6 h- I! y% e: t
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
( b& p1 ~. e* w0 P# f: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
7 e1 V% B& [0 F. F/ j0 X) I! 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
) o( D. ~0 B. q1 ?4 T1 `) Ri : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q. @$ `( Q& c6 e6 D( y9 o9 Q
obj : object;7 ~9 y# r& L. e% k
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];0 v) J2 N6 h, p( c
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
( c( {! c) y+ \) b: k. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
2 o; t$ Q) t) ~: b* zfor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T; T0 e9 R4 [6 `) [$ 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
, ?! s4 t6 l1 T: Fta[2,i] := buffer.mu(i).time;+ |( ]1 ]7 F' \( w2 _% L8 ^/ O7 }
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
3 ]- {8 d7 F6 B3 w5 h4 m8 l! m8 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, X3 i; X7 {( l( Z1 C
obj := ta[1,1];
5 m* `! h1 T+ s) w: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);6 p2 I" J9 g) Z. X0 |5 e1 y7 U5 h
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
3 Y# v7 v1 h$ l, K, i+ H上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-3 17:01 , Processed in 0.019621 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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