设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8242|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!
) r* _0 C) {6 L" H  M另外Control里有个Pull Control是怎么一回事啊?
9 ]  _: N5 F8 [+ f* m& n  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比较好8 n& _* @- J- M# d/ Y$ A6 Y2 }
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即6 n2 c' s0 s1 e$ c( f+ \0 {$ j; q
is 8 X. R" y7 C2 W
i : integer;
7 S% i+ E5 s, b! m; M& }/ uobj : object;4 q7 M+ D& j( O+ z' J3 {6 `: J1 [
ta : table[object,datetime];2 s! x0 w8 [2 S' O9 D# k# ~& m
do5 d) T4 ]# a+ M( ]: m
ta.create;# ~& B8 _. T8 y$ z# F; z
for i := 1 to buffer.nummu loop( y4 H8 `3 l" g$ {1 F
ta[1,i] := buffer.mu(i);7 M( {( V2 r& j8 c4 x' @7 ^) n
ta[2,i] := buffer.mu(i).time;6 y3 ?" Q, H% Y0 ^' q
next;
$ T/ o6 n# h& F4 \* |ta.sort(2,up);( N7 Z) Q; H+ H  N
obj := ta[1,1];# i; a! V8 W7 J" ]3 W
obj.move(machine);+ h0 v+ O5 j$ ~: M( Z7 F9 J
end;% @+ T* A' G3 S+ B: W
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 9 ^' t% {9 X" ]9 l' Z* w. P( ^2 F
嗯,可以不用placebuffer,用buffer比较好* \+ j; r) B. h
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即. e  y4 K/ e( {9 ]) |
is ; p) C9 A& {. c
i : integer;3 j% N+ e& j9 @0 O" ?- T+ D
obj : object;
% S6 w: L0 g7 ^. Lta : table[object,dateti ...
7 F3 p& W1 d* v1 j; X/ X
非常感谢你的回答啊。
# v4 O( I$ r' u) w& R+ ~这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
+ n! L3 U: L: U! v4 J, `嗯,可以不用placebuffer,用buffer比较好4 w9 f  ?$ Q+ q: Q% N/ j( y
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即. B+ O& _$ ^! N/ p
is 0 r+ T) s# e5 m0 E+ @7 d/ G
i : integer;
! X, [, q1 n+ s' G1 o4 wobj : object;
2 S) k5 z2 B! o& l- ]. k+ @ta : table[object,dateti ...

! o% r0 k( P6 \2 `2 ~liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
' s- Z; M7 U3 p, X" Y0 |2 `5 t请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 / b0 U, y0 v+ v# w% @4 Q4 u
嗯,可以不用placebuffer,用buffer比较好
: v4 [! X2 t( |5 @0 f: \- m% S在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即* Y# L. u+ U' }! t6 }7 F
is
" X  N# l: \" J- pi : integer;5 B  M+ i' u$ h8 j
obj : object;! N* h1 E" u. s# c
ta : table[object,dateti ...

4 p) ~& N$ k7 m$ p+ O; d; ~% \- Q* |
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。: S1 `+ m$ O" Y" R- J
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??
, S+ z1 i) m% k+ B( H2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
$ U; m% S4 v2 k6 ?1 X- C% o3 j个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
) h# a5 f1 k4 }. v) X1 {
* m7 b: D% d) g
- |3 q) W' s, q3 V1 e我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
" v* L0 s) c7 J" s. y2 C  C2 F# g8 E1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
- I  p$ K6 d# k9 G! h
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?
/ V$ D9 G+ Q7 R5 r4 I) @感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
7 I1 B& J+ r" k) N: B: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即. `' Z. o; N) P3 h) 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
* w0 M9 M% r2 o5 K& a9 U9 ^4 hi : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
) F8 D$ O& s% [$ a0 R* l' _5 v& l' cobj : object;; d" z- T+ q* j5 p2 t- o
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];
: g' N- x6 L' D$ D0 l, W. z) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo
$ c' n! u4 v4 a& v2 P. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
" L$ D6 V! e9 A6 N! M! ?for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T' x( l* J: ~, _$ J2 X/ P$ X. w
ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F9 e9 n( [3 ]$ ~0 Y2 M% E
ta[2,i] := buffer.mu(i).time;
0 b, j2 u- Z" }/ @8 p( ^' \  G; z0 u/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;8 W3 K! Q9 z: `3 l8 M
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
3 P; e# |6 E& L0 B; O9 c2 C0 M! G/ eobj := ta[1,1];
- s. @9 c. v7 x1 C  v8 {; j" x7 `: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
/ E  |9 X* P/ |9 b* R4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
, |4 T& ]" |' `! c$ r上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-13 22:56 , Processed in 0.027088 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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