设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9593|回复: 6

[求助] 调度优先级

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

最佳答案

查看完整内容

嗯,可以不用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比较好
! P- w5 F/ V- o5 }8 r+ m1 ?在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即. W3 h9 m$ H( ]  Z5 {
is
9 |6 v, c1 D8 ?7 N' T5 x, n1 ]i : integer;& f. t0 q( ]7 z
obj : object;
$ m0 b1 I3 y# w: ita : table[object,datetime];6 K* s( w/ ?3 N9 y- g2 T
do# T: i% L6 t1 j* G
ta.create;
7 F0 N0 X) K% A( u1 ^# B2 yfor i := 1 to buffer.nummu loop
% h, D! T" N1 K, q! @: Q! `ta[1,i] := buffer.mu(i);$ w2 r: v; c3 L, I) W5 `) I5 e( n
ta[2,i] := buffer.mu(i).time;
: H3 j; V# n2 C0 y4 `" v; Dnext;! _+ t; \+ d4 c) `# ?3 D$ L& G
ta.sort(2,up);0 K# j6 l" s& e
obj := ta[1,1];
; M& h7 c3 A4 @) K/ iobj.move(machine);5 r3 k2 x; Y) o/ |# ^! t* g+ Y
end;
$ c) H9 H6 m; \$ M! f: B5 ~1 K上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
4 `5 P" R; s% G, D* i( {7 H嗯,可以不用placebuffer,用buffer比较好. N3 {4 L3 j9 B) ]
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即3 f1 Q, W$ G9 T  d" _
is
& W3 S8 g! ?3 i5 a2 Ni : integer;( n( r8 s* f; d9 v" A
obj : object;; i, L, N( J0 ~8 L- A7 M, F
ta : table[object,dateti ...
6 o1 B0 q3 w) x! w# [* B4 H
非常感谢你的回答啊。! C- E4 a  D3 _, i, a. o
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
  i/ T# n' d; R6 c嗯,可以不用placebuffer,用buffer比较好
6 f' \  O( B  m& N+ |在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
" i" G, h' i. X8 Q: uis
7 D2 [8 Q* A. u5 ?0 ?/ Ti : integer;
4 _( p$ C3 Z9 N/ x9 v9 f/ Kobj : object;2 @3 R# P3 j* d
ta : table[object,dateti ...
# O0 F# ]+ O4 o' P; z" K9 Z
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。6 j" C# s4 X3 r, c! G0 o
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
3 J( T7 g' Z2 W嗯,可以不用placebuffer,用buffer比较好: u# R% F( C$ x2 l: v
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
2 y2 e9 f" g) j* r" \; gis
: J& {- c0 A& r) w( i5 {i : integer;. j+ o7 m; ?: w& Z/ {  \! i$ m
obj : object;. b3 D0 Q5 o8 ?: J8 ~2 A: U
ta : table[object,dateti ...

8 ^8 |/ a" r* K9 k: t7 W) J5 A4 I5 ]% o8 i
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。& P& H$ E8 ~+ u9 X% d! x4 H, j
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
- z2 X( |: ?* @8 ]* Y; a2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。9 i8 ^2 b* z( g6 j# {( p# K
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表   z8 H. i4 g. g) z6 N" U

' V& M9 f2 {% E) B; k+ y3 p1 }9 f: g
! V- w0 m7 W0 A7 Z) p+ H我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。! Z- q9 h" M8 H- d9 u0 F% {* t3 @
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

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

本版积分规则

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

GMT+8, 2026-9-6 18:37 , Processed in 0.013407 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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