设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8685|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!
; Y% G1 Y: X  b' [8 f( v. l& x" J) c另外Control里有个Pull Control是怎么一回事啊?
3 u4 g/ v% K9 H% 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比较好
' Z; e- a6 z4 ?1 h  i在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
# Q; e1 }* M9 u$ u9 }/ p- [+ d  Zis
9 d+ Q& w* X! Q, Ui : integer;
  v, K4 R6 L% X* k8 p  ^/ k0 U/ ]& Xobj : object;
: X0 |$ q; h, Tta : table[object,datetime];
8 O+ F# I' ^0 t3 t+ tdo
' L( _3 a+ z# d1 d8 Lta.create;
: F4 x$ ^  f+ }7 l5 ?for i := 1 to buffer.nummu loop
0 k6 O- ]4 U: \  vta[1,i] := buffer.mu(i);
) W8 _/ h4 u1 a6 b* R4 p; Ita[2,i] := buffer.mu(i).time;
6 R$ p" K3 {& \+ `  bnext;
% ^( r% o! k. w1 X% @- S  l2 Ata.sort(2,up);
$ c' o# L# R. w0 q1 b0 I' {3 Gobj := ta[1,1];
1 P' \) o' N) a2 b$ |obj.move(machine);( f8 b: O3 V" i$ e, E+ a& A9 v$ H
end;
; p) J3 h3 A# T6 a上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 * c' W4 b8 S2 c9 X
嗯,可以不用placebuffer,用buffer比较好; p" K/ n0 W/ M9 T4 N& s
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
% T6 e- _: [  n2 jis
- i7 Q+ }, O' T7 Zi : integer;7 ~* C9 X8 I, \% b# Z/ W/ t4 k
obj : object;
0 [* C) J/ x$ ]; O3 p% f6 Rta : table[object,dateti ...

4 R  W0 l$ O- Q2 h9 ?* n非常感谢你的回答啊。
8 ?$ P! k4 r8 C! F+ i这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
+ G5 L( L$ G0 R" A& H1 L4 I+ v嗯,可以不用placebuffer,用buffer比较好' ?& S$ }6 V3 n6 l
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
3 B/ X( E" H3 N9 q: Fis ! G8 i  C& ?- J- k: y
i : integer;5 m/ k7 _  T5 |( N
obj : object;; E6 Z+ G( L$ J# n# F: _7 m
ta : table[object,dateti ...
: Y2 d, U& e" n# u# {  z
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。6 j! x8 n( [, |$ h7 g: l' q; L$ v3 f
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 / R9 c$ D; _- @
嗯,可以不用placebuffer,用buffer比较好$ f7 @6 F# M8 n/ V2 W% [
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即6 P& I! y7 x! d$ S
is
6 }: ?2 Z8 V( }) A, g/ b: A  {& Ai : integer;
3 ]* E3 Q! t# N: X* t' ]% w$ }obj : object;2 t' N# ~5 k6 c) n' U2 ?5 n  A( m1 [8 U- ~
ta : table[object,dateti ...
. H6 R( M/ O& Y# `( U6 f/ [
$ r. O  l) X( Q; S( ~  {' n
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。+ R  N  f& K7 \
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
( |$ w& H4 U* S8 g* p  n- w2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
5 s2 k* j) J; F6 k! J个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
( n. @0 U$ M# f* b* \% H7 m, j
# h% @" C) F; {: v2 i% E- T
& B. e% y0 m" ?  x- [我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。" _% [! u8 ^2 R5 i
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
5 X4 W2 d3 G% ~& F7 ]8 U
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
9 _  A. H! N' u) ?$ t7 n, h# b感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好7 i% e2 Z! ?+ {3 N: o; {
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
6 V8 ~* t7 A8 ]- X) `+ g3 E# 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# n  B# m1 p7 z" v. J
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
  G: ]/ G- ?3 t8 }/ Cobj : object;) C9 }6 b; G' A+ T2 ~" q. m5 j
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
% N0 ^- E& j" ^2 s; \6 d% l; C) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
- }! m) l5 N  \, u( s. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m: F0 {/ Y* z7 w8 ^, Y2 K$ a+ ^
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T2 x. o, s! I7 i9 H- p: d
ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F# }' n. _- l+ i" p, f
ta[2,i] := buffer.mu(i).time;
7 ~% n, o& Q2 R! n8 S/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
3 K  K" F, t  o& \- j! 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: U+ j1 o7 ^3 Q' j
obj := ta[1,1];
, G* b6 C$ R5 p% t& S- P3 v: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);, ~# @3 Z3 U7 m% u5 u' \
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J* f3 V( Z$ L; H1 O! M- _
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-28 16:09 , Processed in 0.017961 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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