设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9460|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!8 i4 U8 t( b8 d5 J/ F6 \
另外Control里有个Pull Control是怎么一回事啊?
5 b, p- {# ], C还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好
8 P( a. d! l) Q) y0 _6 |; k在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
4 l, j" R- a7 Z# x( Zis # ~7 c# Q3 g! J- N8 c: m& j1 G* h
i : integer;, f2 u, b: j$ o
obj : object;
4 ?2 P) L9 R( I# p; A1 U0 z* tta : table[object,datetime];
% c" @& ]9 a0 y) ]do$ V* X$ o8 t6 Q- t
ta.create;' ~  n9 P/ H6 L* r$ ]8 v! I
for i := 1 to buffer.nummu loop; A  ?4 [0 Q6 v( x
ta[1,i] := buffer.mu(i);" P# {6 V6 ]4 W4 |4 l: l& O9 m; O& p  I
ta[2,i] := buffer.mu(i).time;9 }8 P' R0 B9 {& h
next;  y5 V4 I. M5 ]0 x. e* C
ta.sort(2,up);
2 h5 F5 f* l: c7 l0 Iobj := ta[1,1];
  A5 ?' s& ~3 E: f( T7 Dobj.move(machine);
" N% A3 d: m& W, n  @$ e1 hend;: P7 E% w' n. F5 @. G
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 6 a' W: z1 w- h( I. i0 h
嗯,可以不用placebuffer,用buffer比较好7 k$ i3 H/ E; j! ?. h
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即2 m( D9 Z* B  a9 l2 A& ^8 w
is
$ g! ?8 j  _% h8 Q  r1 S6 A( wi : integer;7 B+ L" G2 ], K) \
obj : object;
. p3 j$ e% Q- G' ~& k$ d# nta : table[object,dateti ...
+ x( B1 G* R. Q: {" T
非常感谢你的回答啊。( m# d9 s2 M+ @4 [( C' O
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 7 ~7 d$ Y& K8 g
嗯,可以不用placebuffer,用buffer比较好$ X& R& q5 d4 K5 k* @0 G* @1 s; O
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
/ @! H3 V7 D$ Ois % \" x/ ~- u  ~$ l- Y
i : integer;4 w! s/ @# G7 N: N/ D
obj : object;3 o8 N2 }8 V) W' _$ p
ta : table[object,dateti ...

& @0 {- E1 p: v- t! q: jliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
% O! q# v& s; x% a7 Q' t. h5 A9 A  Y请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
. g$ `1 k1 ~/ E- X, ~- l9 ~, r  Q2 k嗯,可以不用placebuffer,用buffer比较好
- B6 T6 m0 t! D; K7 t* {, C在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
2 Z* [+ y4 W5 |$ h6 b1 bis 8 F4 s. [# Y! h- H& M6 S
i : integer;2 b, \9 W4 ?% D2 a
obj : object;0 \4 o) O5 F" r5 x5 K% H% M
ta : table[object,dateti ...

* D! ^7 ?6 b& V7 D/ T# z4 x3 X, j" u* L' G5 o
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。# K4 w& b" h! L* |% X
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??- |- T+ O. G2 L# V9 h
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
) S" t6 T( i  t' r, Y3 L+ N个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 . C4 Q/ n5 e% Z! v
- R8 y1 I5 b) B3 W/ v

9 b5 b8 {' ?3 a& w# i- `$ G+ v+ D( m/ j我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。, z7 a: L2 I  X% q6 @! R
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
  ^& ^$ B  }1 P& u# d
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?" c0 U9 T4 p6 W: f# j8 E: p4 }0 @
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好' l- q5 f1 M/ n  o6 {: a
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
4 h2 y$ w/ _2 ?+ T5 K6 }# 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; P% q% b- b; o2 d
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q* G7 O2 l. E: g8 K4 B
obj : object;1 d- w# l; i& b
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];* F1 }1 v& P  d. E8 a( X
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
' K/ a9 [* a8 f+ ^1 `3 t! U. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
$ s2 y7 r$ A/ y4 h+ x5 pfor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T2 I9 {  l% P; X/ ^, C* U! N) N2 N
ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
+ o8 U; T8 m, {" e+ B# h  jta[2,i] := buffer.mu(i).time;; F' i8 J! D  a. p( I
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;! P: D9 w+ ?9 e$ T+ I
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- R4 @7 S( p+ e4 V# u
obj := ta[1,1];
! ^4 k! r' m5 V$ T2 V2 Y: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);! f9 j1 s! v6 p" Q& u( q
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
% J0 C/ E$ P$ m+ {( Y9 e+ X上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-18 07:43 , Processed in 0.024173 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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