设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9072|回复: 6

[求助] 调度优先级

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

最佳答案

查看完整内容

嗯,可以不用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比较好" [; U! U2 n( ?- ?7 Q  a
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
' m' T$ s( ]6 A( z0 w% U3 Z# q, [is
  I2 a8 S, X0 b% i; C& Mi : integer;
5 z5 G) G# V1 N/ ^# \0 r% Sobj : object;
: _7 x+ q: F9 S% {/ `ta : table[object,datetime];
! J6 Y* U* O8 G1 q- R. K' qdo
3 M+ @' o* q1 @$ f/ f5 Jta.create;" Y9 B! F3 S! D6 @: u5 Q
for i := 1 to buffer.nummu loop6 x, A: B5 l( m) Z$ O- @6 a) ~
ta[1,i] := buffer.mu(i);# i5 r. B# |. g6 `( d* j6 _
ta[2,i] := buffer.mu(i).time;: F+ a' K1 F/ o9 v5 w4 c, h. \
next;6 b3 g- v* {5 L) c2 d
ta.sort(2,up);- R+ t" d2 A) d5 i
obj := ta[1,1];
; p& \( {2 z1 @obj.move(machine);
# _" t" ]" A/ [9 D+ uend;
# @1 H  \- a7 I, p$ U! C+ p' n- |: j上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
" P+ w( D( S8 L  w嗯,可以不用placebuffer,用buffer比较好
! k; C) f5 n$ ^' b在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
/ l- h) E; ?. b" ^; uis 1 P% j$ C9 x, i, L, m' F3 p
i : integer;, p9 x; n; W, q7 q' p; [
obj : object;
% b5 c0 n8 M7 O; |9 fta : table[object,dateti ...

& Q6 s( I6 ~$ z( L% |非常感谢你的回答啊。
, R! V! u% [/ S" }. v" F% q4 d这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
" v. w4 h1 E8 P: x! x嗯,可以不用placebuffer,用buffer比较好; z8 n& o7 J' O3 S! D; ?
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即6 Z: a5 j# U7 e5 X- G
is
! d9 y0 K' u) A1 p" zi : integer;
+ B5 Q3 ], K+ S* e" A/ g. nobj : object;
: N9 ?8 o$ u/ R7 Gta : table[object,dateti ...
& y6 v+ y. \' ~- W+ O- R
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。; [9 O3 h- k+ p  G( m6 u6 A8 [% Q
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 & u$ l9 [  o; Q+ o
嗯,可以不用placebuffer,用buffer比较好
; }" V0 B5 R0 j7 D, _在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即% F# b1 _4 x/ j) n
is
# V' a- h9 ~7 l6 vi : integer;
- ?% g0 A6 m9 |+ h2 F4 u  q8 iobj : object;
! y1 c. ~  F2 I6 N( j  D- N& Hta : table[object,dateti ...

# c  ]) l! A. D7 f
9 R- y- M- v/ T# A7 O1 E. w( s8 R我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
1 W2 M5 v- U% ^) k) Z0 h1 M. s1 L& \1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??0 _2 ^( O. d8 I5 U
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。, j# ]4 ^/ N1 ~6 j  r! l
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
; y: F' J4 l/ @8 v! Z! e( x- R
2 Z# _( x. D) Z% j* J$ A
* ^* f( M% a% A6 d5 b3 L我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。' o: d/ J# @$ R3 F2 \: A
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

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

本版积分规则

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

GMT+8, 2026-7-18 03:42 , Processed in 0.024863 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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