设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7943|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!+ Q/ D2 q1 M& f4 I$ T- t4 t; i
另外Control里有个Pull Control是怎么一回事啊?
( A) R  a' h9 f' q还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好: H: C  R0 j4 ]  t# g/ X7 ~8 S2 Z
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
% C4 N5 s: G6 e% {is
4 J8 s3 C! L( I0 t! ?3 r# F/ ~i : integer;* ~3 y4 ~/ ]3 d7 Y" |" m0 Q
obj : object;
" a! Q2 A+ i/ w  y5 p) i' \7 eta : table[object,datetime];
, n# [' [1 w- e# N+ Fdo
# ^0 I0 c- C' h4 I1 w$ p9 `9 j2 dta.create;  M" c+ Y7 {* m# P+ p( K
for i := 1 to buffer.nummu loop
/ U; B1 a; Y; O* i5 eta[1,i] := buffer.mu(i);
* H# ~* G1 Z( ^7 X5 m, J4 t1 eta[2,i] := buffer.mu(i).time;) E6 y4 |6 ?. z
next;
; h1 L+ I* F6 ]$ ota.sort(2,up);
* o$ v% u- a5 h1 V, V. Nobj := ta[1,1];
0 C& _3 C( _% }! qobj.move(machine);
/ j' \" }9 E8 G. Tend;: I5 R2 W+ s# Z" x2 R1 _- X- y  l
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 ) w; Y, }, [# U4 J
嗯,可以不用placebuffer,用buffer比较好8 _5 ^1 V7 ^- }% E% x9 ?$ c4 x* }
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
# H; ]! L1 {1 _9 F0 k. }is ! A, y: Q) Q" p3 ~1 X# j/ ]8 f% K
i : integer;
# q, Q) ?  `# I# P$ F" q5 Wobj : object;: ~  R  P$ a. g; r3 `; X0 h5 A
ta : table[object,dateti ...
  O5 P" s' c* T
非常感谢你的回答啊。
7 j' W- S. e3 q# ~; s) r  I这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
# C) q7 y2 \, y" Z' w8 b6 j2 s嗯,可以不用placebuffer,用buffer比较好7 i0 N2 O4 m1 h; @- H& n! h
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即, |' _* t& E0 B/ @6 s+ f4 W& _
is , T6 l% g; ?$ ~
i : integer;
6 |0 s  |7 S8 mobj : object;$ ~- j5 Z+ C( e+ y/ U
ta : table[object,dateti ...

" Y3 J6 I. e+ K0 R$ @) a5 mliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。* U% \/ A8 R% X6 c' _: [
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
8 k- b" Q! r) z& L嗯,可以不用placebuffer,用buffer比较好
' ?; U0 u( X% T& w! D1 b4 t在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即0 y/ l9 p! w0 S4 m
is
. U( U3 E4 O! [* e& k1 K; |i : integer;$ v  |" |' I% N6 W% \
obj : object;
. L6 K. P- D2 H( A% |5 ^3 }6 W# a0 |ta : table[object,dateti ...

9 K7 ?3 u! v1 g8 m* ?0 [7 Q0 k9 R' t6 w* N2 k9 ]/ c
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。- I+ {7 B7 n. T, ~" B
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
2 t/ Y9 V, g( A5 R1 h9 F& t2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
" D1 G. h3 q# S个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 , @/ p& {1 |" l5 g& |) I
* H3 L$ w% [2 v

! E3 P2 G& l7 D2 T  G% m' v( H( j# s我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
* {1 s2 R6 S- l4 V0 M1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

( L1 D; {, L* s2 X  X, u6 z是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?4 t& e5 ]- |* X0 E- S2 g
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
9 v9 i# V: C' m0 G, Q0 G7 C* `: Q: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即9 U; Q, _6 Z3 J6 Q9 y" U7 K
# 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- r3 J3 d" t' \2 w0 |& X9 r
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
; b% v- i2 B0 p$ O* [obj : object;
( A1 W! j- m; q1 O, E5 }# A) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
- y: J& n: n' I6 y! A) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
; g+ y+ x6 w& t: C+ E7 Z" {. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
* q" ~- l) c7 k0 {+ Q. bfor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T# F0 x1 b; G" _5 Y5 Q8 Z$ W
ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F' v+ X$ a- Y9 G- t, \  t8 Y- O/ l
ta[2,i] := buffer.mu(i).time;
: [, L7 X# e' q% T0 Q  T6 Z2 N/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
: Y! e7 e% t( N8 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
% A" m3 \$ {; y9 Jobj := ta[1,1];
( `( ?2 x' ]2 U: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
/ C0 y$ l* v8 ~& }) J4 f4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J/ |1 ^$ ?- Y% ?1 V% z
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-23 15:55 , Processed in 0.039472 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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