设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8295|回复: 6

[求助] 调度优先级

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

最佳答案

查看完整内容

嗯,可以不用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 S) G' f  |8 ^在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
# V. s  h% @- I: C4 H% t4 U$ b( bis
+ X3 H. P' I, o$ wi : integer;
; x/ N5 S. T" J" H3 E6 x  iobj : object;
# v- a4 v  {; _ta : table[object,datetime];
# W/ C9 B: b  b8 i# }do
2 H% M0 L1 T# H; y& ~ta.create;% g) ]2 w4 `# ]( e* o5 T  z) O
for i := 1 to buffer.nummu loop% ]; `8 G+ }1 V" t+ z
ta[1,i] := buffer.mu(i);
& m5 p/ \2 q7 n& sta[2,i] := buffer.mu(i).time;8 z/ f8 J  v" l9 ?
next;/ m+ k( e4 x6 W# p
ta.sort(2,up);
5 Q  D8 J" E0 q& s6 D: J  J# Dobj := ta[1,1];
, Y, q- _0 i8 i; T( j0 sobj.move(machine);  I0 a' w. Z- Y( e2 D: A7 @; E
end;
( N$ w* U' ?# s上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 0 ?+ Z8 D+ V3 }( l
嗯,可以不用placebuffer,用buffer比较好
# k9 e) s/ S7 L, c; I0 z在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
' M! q1 |2 J6 jis
3 J% L# Y  V+ p- zi : integer;
" x, k9 D7 V% e1 vobj : object;
5 Z" R6 L6 V8 ota : table[object,dateti ...

2 h, {# C2 S; Y" S非常感谢你的回答啊。
( l+ K0 b6 j/ y这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
+ B. `' D% F1 {; {; g+ f) J嗯,可以不用placebuffer,用buffer比较好! W# o$ G. R; E& e
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即, v+ Y% R/ l* E! U3 x) u5 J
is ; A% f% q) h6 I9 W9 h) V
i : integer;
5 a1 P+ Q7 {* O5 xobj : object;
7 y4 r+ K  t$ T2 q0 _" |ta : table[object,dateti ...

/ I$ N9 h% t4 fliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。4 t) f$ l/ F, I. p- D$ ~
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
8 [6 P6 U) A& w+ L1 Y: }1 L# h+ |嗯,可以不用placebuffer,用buffer比较好# u" @7 G1 X) G3 K0 ~
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
7 J+ @0 t" m  I* f! H4 ^is
$ \# G2 d* @- y( d' Ci : integer;
! A6 Y, ^- K. [- N  B6 nobj : object;
$ D& {( P" w. i2 \ta : table[object,dateti ...

" b: K; P7 n5 x1 n
8 F- e0 [+ |/ p6 d/ z5 {  z! N我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
! ?# r* }+ x5 {6 Q' t9 e% q9 e1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
* w( z+ {( A, d. r" f. i4 P4 z! `2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。) z% l" E' w1 ^0 C
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 / M0 q2 M- A( }" g
# R" Y$ ?0 c% a8 X
  Q$ V* s0 {* V4 ]0 F3 h
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
! K2 a" P6 D  \( v& C1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

7 w3 o) X, O7 ]( Q5 g是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?4 ^+ Y; T) Z! \: U. `
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
1 C( c- O% m+ z& B. ^5 W: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即2 k4 Y) [8 Z2 x' 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
$ f2 Y9 F3 l0 [2 O3 F3 Ji : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
  a6 L1 M6 c! ]/ |3 g0 @( ~6 [obj : object;
9 c4 e9 N) g7 c# v) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];1 a5 |( y- r* t/ e( L7 F
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo0 R/ L* P- w( f
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
( X, g  d( F" J: H& efor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
+ H! ]$ t3 W4 R- t5 L( `. }0 yta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F* j" @- S3 O2 x  t# }
ta[2,i] := buffer.mu(i).time;: U. T, X  r% m5 m' H+ v; x% V
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;% k# A2 J3 N: e1 Y% S
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$ O6 B3 A- p7 C
obj := ta[1,1];
, ^# q3 {- {) r1 |; {' W% X: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
7 Q1 ^. J7 [7 F  N# U8 ~/ D1 y4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
( J5 x3 R7 _8 n7 o上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-24 06:12 , Processed in 0.023982 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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