设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9456|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!
. L* [8 C4 g! `2 `- G* o& k+ y另外Control里有个Pull Control是怎么一回事啊?
8 W4 u2 j- z0 k$ @6 \还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好9 {& B/ c: C, H& n9 i; K$ U
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即! x1 @$ j" u; e
is
3 S4 N: Z% Y9 a5 L, Q% X; Gi : integer;' }  t+ u8 G2 `# Z' P- v
obj : object;
9 j' m7 }' V. Uta : table[object,datetime];
& x. r* L/ H) m+ xdo
- @+ r7 M" k6 F% I, b; ~2 ~ta.create;, Z1 V1 G& p7 o! c% }
for i := 1 to buffer.nummu loop
8 R0 ^( p' o" H# J: ^0 cta[1,i] := buffer.mu(i);" @2 _/ `- ?. N
ta[2,i] := buffer.mu(i).time;- X* Y* g' N! P. _3 ^$ y5 o
next;
1 r5 A0 `' z; e0 o$ a/ }ta.sort(2,up);7 `! q7 h/ p  x; A
obj := ta[1,1];
# Y, d: E5 H4 z2 @obj.move(machine);3 w" J% \# P+ b  l; [5 \: P
end;0 J; e& i0 {) @4 ~* L% Y. w( L
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 $ ?  c" ?2 S& `$ H% L
嗯,可以不用placebuffer,用buffer比较好- B2 m6 w3 E* A( a4 ]
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即. n4 t8 ^: v* s7 }
is   X( Z/ K9 p5 c8 K; I
i : integer;2 k; X. \) s# I. m$ D
obj : object;; F1 U, [8 I$ u4 j
ta : table[object,dateti ...
. j5 ^9 j6 k7 g6 v/ e$ Y
非常感谢你的回答啊。" g6 j! Q, X; u5 J- F9 P2 W% q6 P& o
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 0 j0 x/ [& [( t7 P) D
嗯,可以不用placebuffer,用buffer比较好
7 d$ E4 W7 }# Q: Z& c/ f在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
6 g- V  f5 W9 @5 l. Y8 I% zis
; @( E5 }: O: b6 u' gi : integer;
, k, \" |% C$ l- W& eobj : object;& C4 X: U" V. `- {7 v; W) T: G
ta : table[object,dateti ...

3 l0 R. A) @* S: T% qliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。7 u; K4 b# u" {# q
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
$ d7 k1 h% ?: V嗯,可以不用placebuffer,用buffer比较好. M! e1 A9 I( v1 J/ X. l( j( |
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
6 _1 C' k3 Y: d  w- {$ @, fis 0 q# a& S; }# ^  o0 n
i : integer;
; l0 G8 }0 r$ G9 d) _) oobj : object;  i# o1 c9 E/ B( R+ p# v
ta : table[object,dateti ...
7 v: z/ t" T8 D+ I& f$ P

1 z3 T# D2 d" B5 J我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
2 f: I8 h. \' ]1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
7 q) T$ e0 \+ p' E) s2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
, i1 f, e; d. T# [3 `个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 5 Y8 m8 [' C" d" J$ I" d! W
, d& K8 g2 w0 c8 \  V* H
# `1 o; B. T; ~9 Y8 w4 ~4 n: C  I
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
2 Q5 p4 W5 X) t! _1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
* ~0 e4 M  A7 s2 Y0 g# D
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?  x6 X- s1 b2 r  b2 T5 d
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
& `' V, p; ?$ c" b" m( ^: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即) H& H1 Y9 i- T0 _
# 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
% y3 @, G! e- j5 d+ ?: ui : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q3 X, p$ L3 J8 f" T% W/ x
obj : object;7 ?8 Z! L7 ^" _$ x
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];6 o# T% [, ]: t/ C7 A' ^; V
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
3 ?# K+ v: k# }. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m% ?% b! Y- _6 F" W, R% |/ a& j
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
" ~6 F6 W8 S- c% eta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F& g- h6 e2 n1 E2 t2 P7 C* ?
ta[2,i] := buffer.mu(i).time;
5 l$ |" r6 x, I$ d/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;% Q( D; m! h5 V" T0 t" l% n% s2 w2 C
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
# s9 Z9 j- e/ W1 tobj := ta[1,1];
+ u, l! O- C* G9 A/ q' W: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);# n, N. ?) Z5 c; E
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
( A) e; J# `4 g7 t( n上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-17 05:23 , Processed in 0.019261 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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