设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8928|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!# {0 j; k; B6 t# t$ A* D
另外Control里有个Pull Control是怎么一回事啊?' M& j: ?2 M; _; g* K+ u& p
还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好
; X# f1 Q9 ~  F4 D7 `' i0 H) S在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
* I1 z$ q* L4 B5 b4 P: w& G& uis
" Z' M2 l( N6 J4 n5 \& N  ~% {i : integer;
) a3 b& x4 a# X' _3 J# P  I: Nobj : object;
: B" l+ y1 O# p* jta : table[object,datetime];" x& O3 t# C+ T3 O& {
do& D* K; b5 ~, N4 j$ b+ u5 S- F6 I
ta.create;
% Y) S7 m* m6 c- T/ X7 U; Bfor i := 1 to buffer.nummu loop' e6 b4 _  {$ z/ |% F
ta[1,i] := buffer.mu(i);, t% v- y& q8 f3 H0 Z
ta[2,i] := buffer.mu(i).time;% l* W+ T" E: V9 h/ g  c
next;
/ J  W* v; ?. s5 dta.sort(2,up);
; t% q) H. i( i  |' r& yobj := ta[1,1];; f& B; ^/ I+ V
obj.move(machine);
2 k" {4 t" t; b" P. J  ~9 lend;
& l3 s; z+ F9 `" H9 F) v, r上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
; h: J+ m, ?. X- z; O" k嗯,可以不用placebuffer,用buffer比较好' u* g8 L4 T4 W; z* k) ?3 o: B! ]
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
! X( D  w5 N" Y7 i; }: _, e' Ais ( N3 h9 K, H0 \; |
i : integer;% k2 v. {0 q' Z+ d! W
obj : object;$ N, A7 L/ r8 ~1 X9 R; a& Z
ta : table[object,dateti ...

! }3 L. x( k5 x非常感谢你的回答啊。- K: X4 Q0 e6 M0 W/ c
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
  I0 s0 t$ ~$ N/ k- y' D; y嗯,可以不用placebuffer,用buffer比较好  {1 q/ k# y* Q( b! u
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
% O5 z3 q/ p3 w5 I4 H- Iis
1 N7 Y8 s( y- _4 C; b+ @# t" \i : integer;+ @# U' s, ]4 P
obj : object;
: ~: b: }# x' s3 z, pta : table[object,dateti ...
# I. t) e* t. W8 i* A. g4 F
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
$ \; ~( K& G6 c" g4 a请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 8 ^9 k. S" A4 C4 p$ w) h/ a
嗯,可以不用placebuffer,用buffer比较好
6 M7 t! ]  e# ?: e在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即8 \. _9 Q8 r0 a/ z
is
" F' x$ C$ O+ b# A4 z) J, O7 Ci : integer;
% K, u$ z# H. P$ ^5 s# U- Aobj : object;3 O- Z: X6 Q' K- T% i1 C5 h
ta : table[object,dateti ...

. q. H  \5 M0 U& o& Y' ?9 H3 `" O. {' J! \/ [
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。/ @4 G5 X* S2 {/ h3 b
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
* |7 m- g0 v2 Y! x; A3 }2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。9 n! q( s1 @. ]8 W$ Q4 W6 [
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
1 n" B0 y" b. E0 G9 c. h: r9 L7 O# A' L' p
+ u  h  T" d- r  c7 ]5 F
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
* {3 L" {# y+ Z4 W, N) o# ?& G1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
: x/ D/ }2 `2 G+ k) o( e
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?# x2 }; f4 L3 |
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好% J7 a2 z3 w0 [
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
5 x6 x2 Y) f. n) A4 ^; c# 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  c8 p3 d# l4 C& W
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q  {! ^5 O( i: C/ [  V
obj : object;2 o1 n% P6 y: F( ]+ e
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
# V7 H- l( B  c+ C; H; j) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
- D/ l+ h) j% Q: ^' O. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
$ q5 t4 P7 P. ^* o- t: X6 P, Z  p% Gfor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T$ i- U: @# |$ B+ g
ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
5 I2 G0 b% |* E: x/ Z+ rta[2,i] := buffer.mu(i).time;
+ J% @2 X! }) @* u' S6 G0 U/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;6 J( s7 G; F% n0 \
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
: l# S, j1 W  W# O9 Z. D& v5 Vobj := ta[1,1];0 |( g6 e% I* O" h2 K( u' ]5 @
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);7 T( X  L0 w5 g! K
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J/ g: u, ]8 w9 t$ G/ B. A# l
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-8 20:16 , Processed in 0.014355 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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