设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7924|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!7 {- u* A9 \) r+ t' X" |
另外Control里有个Pull Control是怎么一回事啊?
0 h5 Q1 d- U7 G9 U# y8 i: 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比较好1 v2 V0 o& _5 S6 |$ `
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
" ^) U/ i& F- _& D. h# l! y2 `* Kis
% s9 ]/ }( |( ]! ei : integer;
! [0 ]: i& L' G7 E. I; l3 [  V& `& @4 Sobj : object;9 d& m& g1 _; S1 R, R' h
ta : table[object,datetime];
4 @4 e8 K( Q5 ado
1 O: W/ s8 h& n3 w; dta.create;3 e, t+ d' h: K7 O
for i := 1 to buffer.nummu loop2 C, U% }- o! C+ \  m6 H$ O
ta[1,i] := buffer.mu(i);3 d4 N, K- v! R0 h' O1 X
ta[2,i] := buffer.mu(i).time;, M0 h9 e5 l8 M8 l( w+ M. I
next;
/ h$ d! F. v, ]) Qta.sort(2,up);, D  A; M+ t+ T! ]
obj := ta[1,1];/ ~2 j- W: u# b' V
obj.move(machine);
* _9 K* c  \. A  X2 {, b; ?end;
6 v! _& x* O: c7 N上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
$ B; U, Y$ ^5 W4 _* H3 t' ?, }嗯,可以不用placebuffer,用buffer比较好
! n$ C9 T- E. R  O/ e# \在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即; }4 |+ j5 N; T' ], E
is ' A. J6 R, @/ A( W( v. P) ~4 z
i : integer;
* t, ]# ~) p5 B. @obj : object;! q9 X; W, [  }
ta : table[object,dateti ...

# Q& g1 p/ b: }, V9 f) A$ f% Z* y非常感谢你的回答啊。
& c3 p  E5 |% Y% J' }这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 % y' d8 t: P- |8 Z* w7 ~
嗯,可以不用placebuffer,用buffer比较好
# j9 p' q) S# o, s/ E0 h在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即1 d3 i/ J8 K5 v% ?( m7 I) H
is
8 Y( \3 t0 {7 Li : integer;
% D4 e5 m3 S1 Q& x6 @5 C& hobj : object;
$ q- |/ }3 R4 ?ta : table[object,dateti ...

/ B& w1 L8 j) F! xliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。. C/ m5 v0 I+ n. a
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 1 R0 d( F; F  c2 l# x
嗯,可以不用placebuffer,用buffer比较好
. C( r8 M. C  R% {' g8 l在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即, S& d/ d$ }1 \  r  y! t
is # u0 b6 q2 D' d7 {1 N: A
i : integer;
0 ~. F. W$ @1 }4 ~9 Z. pobj : object;
- L* m4 u, f# g2 F4 Lta : table[object,dateti ...
* b( k' g' L* I0 D7 t- I; ^" A/ F
: \3 M, A' y$ W2 B4 i. D  E0 S
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
& H* C2 Y- m, I6 r, A& b/ y! P) F1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??" l- O; C: |  g+ u  j
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
+ F2 G0 T$ T$ \6 [/ `) r6 W个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
. }1 K7 r; _5 }# R
+ J* z, J0 S8 z* e0 J' b: m0 B& m! _, v# Q2 f9 D3 ~; i
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。$ D3 j% n  U8 Y& |
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
7 P  R2 {2 N7 J6 i% _
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
3 F9 U/ e) q. X" _1 s( {9 n  T感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
( _" k7 [) `: {7 ~& ~; ]3 C; t9 l: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
! f1 y6 i! D' g; y7 N# 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
/ X8 O) a, ?# g5 E' C/ K' n8 ai : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
0 U  a& L/ l' h" P. Hobj : object;. {5 [: \) w7 P" b% |! e1 w
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];* t* w- q7 _- U3 i- |
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo* S( f! g3 [4 ]' `5 q% N
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
) L9 r! y: ~# W7 V+ Z/ F( Nfor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T, g1 s& w3 f) 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
, h  u- r! v: J  J5 ata[2,i] := buffer.mu(i).time;
% E" R3 M, c6 N% }; Q5 S/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
  q, A5 o( E* W) U1 P# I& Q8 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! p' E' Z. I' y( i. h7 C3 P. s
obj := ta[1,1];
7 n! g2 Z( V# f- L8 a# _7 G. b2 f: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);  [8 s9 S$ Y5 j$ S; m
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J* L; P; G! l$ @4 d, w( n
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-20 12:29 , Processed in 0.019945 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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