设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8784|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!/ s: ~8 e0 H0 A! u9 F
另外Control里有个Pull Control是怎么一回事啊?
  x  {. t3 t# ~1 {7 Q5 F% u还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好5 l9 c: g6 p4 i) d( `3 v
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
4 j6 r9 M  u0 g# R- yis 4 W0 }, B0 Z* b/ C
i : integer;4 J/ V; n% ~5 x5 h" S5 {" g7 U' N
obj : object;
; e- d5 v- u, p, V$ Wta : table[object,datetime];$ T( F4 w2 x/ z$ U! e
do
3 c- r- T. Q, m" bta.create;) C# A6 d" g! Z, p$ S% s( x
for i := 1 to buffer.nummu loop8 j8 d# F3 r0 d& w' Z! z) l9 C
ta[1,i] := buffer.mu(i);9 h& f/ P+ w' F" U
ta[2,i] := buffer.mu(i).time;
# Y$ ]' Q0 [5 r9 f: s1 @0 E" Enext;
, ~* {: U  l' R9 T' Rta.sort(2,up);
# O7 j; v% p8 D% D, d! wobj := ta[1,1];+ W. X! H/ {; }: k2 P3 y
obj.move(machine);2 e: v8 Q4 V' e. S# m
end;
% F8 {- B! x" D0 k8 q% F上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 # g4 B. \5 P" S
嗯,可以不用placebuffer,用buffer比较好0 |" N$ V2 u* F$ d; U2 T; f
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
8 t3 d2 }6 S$ t  z: His ; P  f" u4 r2 f* E
i : integer;  ]9 Y( I2 }8 j5 P7 Q# S
obj : object;
. u& ?8 ~. R. Z- C6 jta : table[object,dateti ...
( D% |0 Y/ n, [- Q) V7 k
非常感谢你的回答啊。
5 Z8 Q4 K) N5 M$ n+ z这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
8 {" m6 n% z) w# ]嗯,可以不用placebuffer,用buffer比较好
- o6 w4 e( F* ?; T# |$ [3 i在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即; k0 w# N: j4 z* J* s& _* e9 U
is - w; n* Z  P  z2 d' f. Z4 H; z3 I
i : integer;
3 V0 M1 {! i& E7 Nobj : object;
1 ~, T, ~, d* K( a- kta : table[object,dateti ...
  a+ E& g3 N) I( a
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
; }; x' P! J4 f# x% b+ y请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 , q# T; \! A. @/ G% |& ~
嗯,可以不用placebuffer,用buffer比较好: E  T7 O* C( |# P4 m4 e
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
! k5 X  ^. Q1 O- wis 0 `  u& m# u9 u4 \) f
i : integer;
5 a1 `5 E& n( k4 ^0 X6 Aobj : object;) h) T8 P: d& X& ~1 L" Y2 z
ta : table[object,dateti ...

9 L+ j  R0 f1 m" |% I; f
2 P$ ~1 @. |# j* u( E4 ^我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
  A; p; B4 O* X* Y1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
  F1 w" X6 {  c2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
, E3 l0 |7 X( I: l9 e' X个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
  ~. F& @$ |# {- Q8 t5 y# y6 d  U' w0 K. K* x
" v" h* R2 A8 v! Y; P. f# q4 T8 S$ ~
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。4 E% a+ M: u9 G5 A  w1 K3 d7 r3 c% I
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

* l+ r' I0 c9 W; T& k是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?9 i) F$ F. K5 ^( ?; ~6 p$ L# D
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好+ I; N4 R# h# n* e; V, J4 t; n
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即4 Y: J+ \' J" J- m
# 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; R. }0 z# j1 h& P8 A
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q+ Z( D( v: ?6 x0 d* N4 `
obj : object;
$ m, }' t- P- {5 v) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];& L; Q& d6 q/ A3 G8 f
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo9 k0 B$ t9 r" M/ j# f; i6 k
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
9 d' v4 E0 P& V7 i6 A/ ofor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
9 x3 n" q) F; _2 P8 l, m% n$ ^0 Bta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
4 ]# [% |* G3 a1 J- A! Dta[2,i] := buffer.mu(i).time;
9 ?) g1 z% u% @  R3 l- e/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;9 r, p- M" [( m6 F, ^+ F4 F2 J5 u
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, X4 A6 Q+ C& X4 h' N  L
obj := ta[1,1];0 H+ y5 b8 T: a; z
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
& i5 t( D- y' d5 \5 ^- `# d4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
- b' C7 ~" M& c& G) z3 Y2 S上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-16 23:54 , Processed in 0.015655 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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