设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7831|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!
) Z; s# C" F# Q# ~另外Control里有个Pull Control是怎么一回事啊?" n4 C7 i: `; 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比较好
' H/ G" ^& T6 Z7 U7 v8 S' I' Y: N; M在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
5 F4 x) t& Y& |. u/ \' P# Ais ) {( C5 i2 j9 L3 m7 }2 Z6 u) k. ~
i : integer;
/ R# {8 [$ d( Z  O- Pobj : object;) e0 r; q5 ~, v
ta : table[object,datetime];* v1 u7 C4 J$ [' Z
do6 ~: G% E5 J* r9 G: s; Y' p
ta.create;7 {. Y4 ?) Q1 T: h1 [: d
for i := 1 to buffer.nummu loop- R$ \& x  J9 n: Y) s# Z
ta[1,i] := buffer.mu(i);
+ g" [3 Y2 c+ [. l1 }ta[2,i] := buffer.mu(i).time;
+ @( E; X, p2 {7 onext;
/ w, _0 P" i8 {$ gta.sort(2,up);
1 |6 n8 |% c6 wobj := ta[1,1];* a( e1 C) m" s: Y9 d
obj.move(machine);2 m2 r# `) J5 q& n; X
end;
8 I2 V9 d0 b9 l9 _* l# j1 |/ \上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 # i0 b  V+ w- V
嗯,可以不用placebuffer,用buffer比较好
' c0 L5 F7 j0 j# e+ o在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即$ I' u: t; n9 h" E' \
is
7 k9 B4 ]: w/ l. e4 v+ u# Fi : integer;' Q# K/ d& ?/ u. S/ Q
obj : object;6 c  F% r5 ]) p. y
ta : table[object,dateti ...
8 y! n  z0 U# `0 U  X
非常感谢你的回答啊。, ], O+ L; Z* I; G7 N' C! z
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 ! T3 i3 V% r+ v; l' q
嗯,可以不用placebuffer,用buffer比较好4 J* x1 y/ s0 `+ H, C5 D4 x
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即7 X2 i+ ]: [, ~0 a& X
is ( g( Q" C. C4 _8 ]% h
i : integer;/ ~; W& P+ k$ A8 ^8 Z+ V* u
obj : object;
# ?/ l0 s9 H% a. j+ W* T8 Sta : table[object,dateti ...

, Y* i0 w9 Y; Nliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。* S8 ~* o, M& R: M& x9 [. w; j
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
* }5 _  m; }# e4 S嗯,可以不用placebuffer,用buffer比较好  H/ \2 f8 u; j& S5 J3 z. n* V
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即0 P2 S# V: ~- z: y1 q% W
is 6 j" h8 }! c+ y( V2 i
i : integer;
  r0 j. ?+ Y: j' |. wobj : object;
. x: U, s4 e4 @9 {0 @; ~! Rta : table[object,dateti ...

0 f0 p) @% h1 q6 V. G& L
8 A6 r% l* i2 }5 t我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
  Q/ ]0 `* S. p2 y9 p" ?1 L1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??! C1 r! i" z: t" c2 P/ R. V
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。# W. i5 |  {9 u0 O) R
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 / k8 b3 m5 Q' H! u& M, w7 i% f! w
0 Q! v  P: j% H0 x0 w/ v4 d
5 U! r" o9 q' w3 r
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
" Y+ h, Y# }' Y1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
+ C4 J. t) q9 c9 n9 V/ X
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?1 \" F9 w! B1 y) M, _
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好5 K5 O; O# d  D( `* h& q. r+ D
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即+ C( c7 T$ W, B5 R% M7 w
# 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, m& g0 P+ t# P! V9 e$ A9 @
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q8 Z. ?, b2 @3 m" ]* [
obj : object;
/ Z9 w" \# r* f: Q) T) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];( I8 C5 o9 N- T
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo7 [0 z4 v8 k/ L/ e7 o2 g3 M2 k
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
- a% \! l! s9 g! R& i: O6 M" `for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
! u4 d! _8 }( I- [ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
" {0 S: k( A8 Z) z$ u8 ^0 Cta[2,i] := buffer.mu(i).time;
9 t( g6 ]: x; v' F: y. L; n/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;: y  }6 ~# S6 y! ?8 v! N
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
: N1 Y1 h* d+ ?! f% F6 Sobj := ta[1,1];
- u$ i) S! b8 G' ]* C: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);, y# S- z5 a% @9 @
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J' `) @0 x0 A2 v/ `' G4 u$ }' ?
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-3 01:27 , Processed in 0.015588 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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