设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8550|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!* `- k8 S/ _! p) X1 Y, I
另外Control里有个Pull Control是怎么一回事啊?
$ s' L% q. m! X7 E还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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/ d6 V' Z& y( }' T# T7 c/ n# S. Y
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即2 u3 |+ t) R5 ]
is 6 q; S3 N5 _, ]
i : integer;, t4 [$ B) V) r" Q- ~& ?
obj : object;
& W9 _+ q7 @4 M/ `. L+ |% g9 hta : table[object,datetime];
" l0 ~) d% L6 u* V& Y% xdo% n+ E) \- w; h9 o3 k: e
ta.create;1 b: D9 w$ }" @* @9 t
for i := 1 to buffer.nummu loop, f# p& Z- `# W/ k2 ]
ta[1,i] := buffer.mu(i);: p' Y) v: ~# O, b
ta[2,i] := buffer.mu(i).time;
# T1 a: @" V+ |9 W# z# qnext;7 g: l/ E( A4 [# Y: v. }2 R
ta.sort(2,up);1 W7 D& k) O  P4 |* Y" Z  D3 D* z
obj := ta[1,1];
! }! R/ }. i1 e, y' Iobj.move(machine);
, t' W% M. Z' @; |; o0 Vend;
5 t! [2 Q6 `' l1 I上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
( i0 b8 Z4 c# |5 E) i3 m& E# T& L嗯,可以不用placebuffer,用buffer比较好
  N9 K5 Y6 B/ v! q' r# Z在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即4 a" |1 g( L- L$ c$ G! x( |
is
) j& {; o& C. j! G; z9 ]! M( `i : integer;
" e8 _7 l, w  Y# {# J+ Tobj : object;
( h  {& r: L" \8 Z% ^3 `! D- Rta : table[object,dateti ...
* S7 Z# I7 J# r) t
非常感谢你的回答啊。  ]- x6 [6 |  O  B1 k  S4 |
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
1 B3 Y( }/ k# Y) b; S嗯,可以不用placebuffer,用buffer比较好! R& E* g! D' D0 T9 c/ \4 s% F$ E
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
" u  Q+ }) V/ |1 h3 gis
9 X# R; q: W  ~4 p9 Ii : integer;" [& N8 m' h  B' ~, N& K3 H, `
obj : object;1 P% C/ Y2 m6 ~
ta : table[object,dateti ...

* h" a$ W- s, g: K! gliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
, E" E7 \! o6 U6 [请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 5 o' n2 o. M2 Y5 V# V) h/ S
嗯,可以不用placebuffer,用buffer比较好
  E" J( ?/ Z& Q) e在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即  a9 q& B( ?' O2 h7 Y4 Q# F
is
5 D3 V' I, \& E8 a1 t2 T- \3 Ai : integer;
( v0 g, E1 y1 F, z1 k, u8 _9 Hobj : object;" i# V6 a' s3 z* e
ta : table[object,dateti ...

' r" x8 Y; Z% e. _6 \0 j
4 d+ C* n4 i, x4 |0 V3 U7 }我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
3 E7 o! e- z  }# t4 F/ \/ U1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??) N; Z5 ?6 p) l5 E7 I+ I/ G$ c
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
6 S+ R# ?+ L/ A/ z8 d个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
$ D/ P6 }7 i/ j# w. N& ^, n9 @1 g: [" a1 b* \1 _

  _3 s, x3 a" r4 A( J+ w2 C我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
. I, d; m: F3 I* V9 x6 X1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

+ e, I# V0 V. |9 w7 e. ~5 |是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?2 I& ^  z) W! h( \# X: Q$ h
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好3 W. v/ u: q, I8 A( j2 i- m# ~9 ?
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即8 i, l, v  h6 P( Q% p
# 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* T1 @+ F7 ^! V
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q% u9 n7 l) ^, Z' [& F7 i9 s
obj : object;1 H* U0 A3 H6 ^9 y# m: L
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
# A! ^: h: [% N) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo7 |! q  D( \+ ?; g  L; Q) [) o
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
5 \+ l/ U& k! H  [7 j/ @2 Kfor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
# o/ }' E4 H& F. Xta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
* s. n1 r" c& `ta[2,i] := buffer.mu(i).time;6 n7 t5 Z- J0 b
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
& \6 s, T/ r$ j8 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) M8 K4 t0 N7 ^7 xobj := ta[1,1];: A/ O; c# [* }3 b- U2 g
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
/ L% e% J0 E; Y4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
% r6 K! y1 p8 l2 o: D4 z, J4 F2 {: L* i上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-8 02:19 , Processed in 0.022140 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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