设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9028|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!0 z0 l& d. j5 l" I7 e. J
另外Control里有个Pull Control是怎么一回事啊?9 Y3 T5 U- G% K  c" a; _% Y8 R) f
还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好* d. P% z8 {1 }: R. j3 d2 g
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
" j9 J! w& R) p1 [6 l) a3 tis
7 Y5 y6 n6 R* a7 Y- ~: ~i : integer;
( l) H6 C" t$ f! O* M0 Z% eobj : object;+ d3 w( K$ l- R
ta : table[object,datetime];# k, n, T/ m- [: i- D4 @
do
5 J/ w* [) G/ u: x( b* R" [  y; ?; }) Jta.create;
0 v  t; O7 }( v( Y: kfor i := 1 to buffer.nummu loop" p7 X; m$ k: h$ m
ta[1,i] := buffer.mu(i);+ q9 h) W* b2 g+ y" W
ta[2,i] := buffer.mu(i).time;
) S2 I- h  J8 M6 I7 Vnext;
+ K4 M* e1 S1 o; L! Tta.sort(2,up);  Q  K: f8 H$ s; e
obj := ta[1,1];
# ]! A( Q8 e/ K: q1 bobj.move(machine);( `' o) b6 Q5 Q3 W: c+ g
end;4 p; v, @  V# T- M7 r6 \1 G# z, w
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 / U3 S3 }$ M0 R3 i
嗯,可以不用placebuffer,用buffer比较好
6 n0 w  }" n' T8 X) S在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
$ u6 ]& S$ M9 V- F  V$ _) x- vis ( a7 m$ M( K) i5 T0 g3 ^, l
i : integer;; Q5 X% L3 G6 n8 n9 [( c3 P$ A
obj : object;
$ ~: v4 ~' T! ?. V' mta : table[object,dateti ...

8 q) J0 `6 o, D2 l8 i非常感谢你的回答啊。
; _* S: k1 Q+ W4 X3 J4 o9 [这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 . Q5 k+ l, E( }! h/ j5 s
嗯,可以不用placebuffer,用buffer比较好
4 L, U2 I0 o8 O) U: B2 f9 O在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
* L% H2 T2 s; N3 `$ \is
; S/ U& s+ ^: r! X$ ]8 Ri : integer;
# J8 u: E9 S" C( w* p; A' u# Lobj : object;/ ?" V( I( Z" m; h3 Z0 p& k
ta : table[object,dateti ...

' M) a0 N! X) b/ q1 ]( G* ?! v% cliysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。! w7 L& p& g6 ?, h7 P; u( {2 c
请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
; C, r# j5 h0 J% w嗯,可以不用placebuffer,用buffer比较好  R- u" r+ R1 p, `6 j( s
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即& r1 ^; n8 S2 M! W
is 1 c- M- f+ C. Z7 y. C, g$ |% R
i : integer;& A2 c, @! V; G# B3 e; E7 o/ @2 p
obj : object;
: m8 d* K3 N* k/ {0 T9 c) @ta : table[object,dateti ...

6 n) z) ?, h: ^0 ?' V7 \7 x# B# o- D# K
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
7 ~6 X% H- a! m9 T! T% {! `1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??' j8 b3 d/ Q( |- D9 y
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
5 O% G% D& k" p# y( A个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
  ^" J5 H$ A8 h; o4 z
9 Y/ W8 `, \# {9 u# ]4 b8 X# w* g% h3 t% [  I* n8 h
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
+ i( U5 `/ R2 \! z% T1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
9 d, I) W* t' ^% _
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
1 e( p( ~+ E# h8 y感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好- e: @0 K! c/ G3 T- B$ W+ I
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
; U$ S0 l8 t  |2 l5 {# 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  M% Q! [7 V" X$ A/ w; X/ e
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
8 l: C. A& I& v0 o; u3 fobj : object;
5 l; _/ P( [+ G1 q) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
+ s+ m* f. H; U4 v1 r3 Z; [1 x) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
2 f0 i4 p( L0 v' w- \/ Y, \9 G+ o" U. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
: Q( x; J% s0 Z* @5 M1 K$ ufor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
! t' c/ b# l7 S2 H: P" Sta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
9 o, _. ~5 x5 W- s; Wta[2,i] := buffer.mu(i).time;5 z# E$ |" v2 t2 c" I
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;
2 C+ X1 `* j+ P$ W% _6 r# x- 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
4 e% N& ?* y5 d7 z' x0 iobj := ta[1,1];
' B8 _: m$ J! e* n: \: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);2 J& ?& Y. L/ |, b, b, Y- u
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
( Q/ A" \; w# e: U上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-15 17:10 , Processed in 0.014230 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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