设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8464|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!
1 C4 ]6 k6 q+ R8 z4 P9 E- x另外Control里有个Pull Control是怎么一回事啊?
1 o# g0 A6 i& a" Q还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好* i3 w+ a# a! _% t
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即! e$ D- d, w* b0 Z
is
* `. W6 d7 ?* G9 U: h( |( l0 ~0 Ii : integer;
) |% O0 V3 t1 X$ ?/ {& |6 aobj : object;
. \5 L3 T4 N3 X3 Y" [ta : table[object,datetime];
& `/ _) s! @" q* Fdo
8 X. g8 \- j1 gta.create;2 R% L3 t/ _$ r! c1 R. N2 N
for i := 1 to buffer.nummu loop
. l; z( D( o0 V, Fta[1,i] := buffer.mu(i);1 X4 c6 M7 j- t2 u5 z) @$ m
ta[2,i] := buffer.mu(i).time;
; p6 ]4 }; }  `2 y9 q: w2 B5 @next;
" i* w/ M4 R/ `* {0 e! @: H& Ota.sort(2,up);
& _/ T1 l9 E: Tobj := ta[1,1];, _8 w6 U/ Q; B+ ~6 r- V/ f: T) k
obj.move(machine);& ?3 ?+ V5 }9 C0 q1 L3 `
end;
! O. N8 k0 q3 l3 j  j" d+ }7 A上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
& U4 k" H1 h8 {2 i; P嗯,可以不用placebuffer,用buffer比较好7 M; a. B) |* o8 l1 }% ]  e
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
+ c6 E% Q8 K9 k9 `4 ~8 a1 h! {is 6 I" n1 }" f$ r- R
i : integer;
; d3 |6 z: C) W! R( @obj : object;. k9 I( _3 r& G$ h6 y
ta : table[object,dateti ...
5 h0 q0 H) ]2 @/ ^6 T9 |: m3 A
非常感谢你的回答啊。
+ s# S) B: F1 J这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表   h) b* Z" f) L9 n
嗯,可以不用placebuffer,用buffer比较好
2 Q. V; S4 ?4 @, G" K1 @在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即8 i2 L6 K. S' E+ }, k* D( ?
is + J( h. W7 ?; s/ [! v& J
i : integer;5 G4 W0 y+ H/ H& @% k5 c1 G
obj : object;
4 x7 A. z6 e: E8 bta : table[object,dateti ...

. W9 Q! U' J& Z2 Tliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。& S9 o0 D& ~# k5 V; |$ U" |
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
" A3 Z* a/ @- _8 C; v  z# N5 m嗯,可以不用placebuffer,用buffer比较好
. `* z5 M  t% a" d5 f! o* z& {在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即, f6 p) w8 S3 w7 x
is
% u/ V! S9 o+ p) l3 xi : integer;
& l3 z: U7 a2 L. _) H8 F  ?. xobj : object;
& A0 A6 s+ p# i5 cta : table[object,dateti ...

8 y1 c+ A  x* o2 J! E* R
- }( O2 S  A7 w: _7 j- [) m7 L我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
; _- c* I5 ~& y! \4 p1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
) {8 o9 [0 b2 V. g) p% a2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
3 m- x5 n6 h( F: g个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 $ O: J# z5 `# `1 y( i6 ~

* S+ g4 f3 m  w3 s
- ^# R6 `2 m* W  s! I6 [1 z2 y7 d我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
: h& i8 p, G6 {8 T( W! I& z5 x1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

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

本版积分规则

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

GMT+8, 2026-4-23 01:51 , Processed in 0.023845 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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