设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9418|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!, Y3 F% w6 k: Q2 U4 R) q
另外Control里有个Pull Control是怎么一回事啊?
: h- _6 v) e- a7 z! C0 D还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好% ~2 X9 h4 ^, w  J
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
. A  C* @8 x0 B) k+ Mis
8 |$ Y2 C0 k* j6 d: X3 Ii : integer;, v8 |2 b/ l  C" d4 g4 t2 P8 t! I
obj : object;& s0 v1 K6 ]! y- f
ta : table[object,datetime];
/ A9 _( ~9 t; ldo! J) s9 T' D* H% e# i  {1 @
ta.create;
4 g- g+ Y! G2 U+ ]for i := 1 to buffer.nummu loop8 X7 `0 \" X/ q: X* l" t
ta[1,i] := buffer.mu(i);# u4 N5 r$ P3 L" V& U/ ~$ t. \
ta[2,i] := buffer.mu(i).time;2 t% s+ |% Z" S$ X* [) n
next;
# o% w% ]8 H2 p) E  |: B+ Cta.sort(2,up);7 t2 e: c9 F! c5 i5 P5 f/ c1 ]
obj := ta[1,1];; y5 S! G) n& M
obj.move(machine);* |4 n: m6 `' d2 C0 y* N7 R
end;# H2 s& ?  F7 a6 i, z+ Y
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
6 @0 R5 H9 \$ g6 e% G' y/ x嗯,可以不用placebuffer,用buffer比较好
: ]# Z, |1 p2 m: p: l- [8 e3 P- R在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即; c* _/ y. U, F) `5 U. \- O" C
is # F: p6 q; b' c* j. `! `
i : integer;- |1 |4 z1 I5 t* f/ ~- [
obj : object;5 i+ F3 E% K& P5 Z3 p. z
ta : table[object,dateti ...

" P- Z1 {, G. w: `' @非常感谢你的回答啊。- z8 m! r: H6 P5 \: f' Q$ Y4 W
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
2 G1 j. Q! Y% v$ g) B* [' ]+ q9 L嗯,可以不用placebuffer,用buffer比较好3 x+ G0 `/ ]5 X* b% P
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
' `% E! Q" C2 v; I- Q1 F: ?is ! C% ]* O. g+ ]/ D' E1 u' D
i : integer;
# I6 t, V; N9 b$ p3 Dobj : object;
; P% {" C  b  w$ F7 Ata : table[object,dateti ...

6 l  }) n& Z) Q; ?" |, r. Dliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
& F* i* K8 G: u4 l! b, \" @% V( Q请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 $ Z0 u) y+ Q1 H- U
嗯,可以不用placebuffer,用buffer比较好* D0 g5 G' O* m+ k$ y
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即- g6 [( p) {0 x6 B( d' w
is , g! k! j" X" [
i : integer;4 Y$ J; \% q' D$ v
obj : object;6 R$ ]9 ^+ b3 P- p2 w" i
ta : table[object,dateti ...

' U$ T0 h' e. a3 t7 b3 |! f0 v/ ?  `" s4 `8 t
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。, E! S5 U' h3 {/ b9 C  O: h
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??: m" C5 {) ~. T1 F- A1 O* ^
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
  o* C: n: N* D7 h: b) ]个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 + r; m# `2 a0 w* R' a3 \# T

- Y( N; n( a# v, u- M
$ [  s. e; b+ x  t( w9 s2 {" ?我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
' H& v$ g, L# j+ ^& J1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...

0 R( r  m7 J3 M( K0 n/ a; \. B是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?! W0 P, L+ m8 c" `* P2 a  X6 S
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好* Z1 e! U" H' l. v. q0 V. I: j& R
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即* g, w. s' M( R; \8 U8 @% g
# 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
* a9 E9 S+ k& ~# o) w" t9 s8 qi : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q- ?4 T- z5 Z+ {$ S
obj : object;& {" S1 x( ^! j3 n1 l% e
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
$ O4 {& o' t% x( i) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo1 n+ `! w0 U3 K# f" ?( Y+ e$ G
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m2 m2 X) U0 ^, W# Z4 I) `* V
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T1 x, G/ @( Y2 f+ D# C4 c$ M
ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F! E! C2 A; M) A! X
ta[2,i] := buffer.mu(i).time;
  R5 }1 L$ s1 f/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;# g* _! v/ u! N: w9 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% p+ D; P( p# O2 I3 @, E) x& \: Y
obj := ta[1,1];, z0 M  {% X! j5 J
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
( |& ]# b" B6 C$ Z% ]# B0 Y+ s% H4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J# b9 a1 R$ ]$ v" s
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-11 17:56 , Processed in 0.020423 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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