设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8329|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!; E0 L8 S' D+ }& ], a1 r' @
另外Control里有个Pull Control是怎么一回事啊?3 j3 k5 p8 {9 q5 d7 n
还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好
6 ~  ~2 v& a- F8 f$ s& b( L在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即  ?, T  s- T/ Y* q4 y
is ! a& C, r4 ~( C# t' L* C  F' Q9 b
i : integer;
* @1 O, _2 A) N; O) Q, Yobj : object;( S8 h1 F+ h6 B
ta : table[object,datetime];
  n' b- y  w$ M4 f+ W5 P8 k" ldo
# ^" a! ?1 c5 `6 eta.create;  M9 G" _6 \% @9 T# j
for i := 1 to buffer.nummu loop
# {' R- v# N) r+ Yta[1,i] := buffer.mu(i);) L0 ^4 }8 `; O  |3 e2 J
ta[2,i] := buffer.mu(i).time;1 F& s- ~3 b$ K" ~5 E
next;
0 m) h2 l9 A0 P3 m% t% ]7 P' Ota.sort(2,up);9 J# ], b/ Z. i! i0 U3 c  i
obj := ta[1,1];! E/ ?* w9 g! g$ k0 c  F
obj.move(machine);
5 h( q& U. D- n9 Y5 Cend;
9 j0 H, s3 T4 t" l6 O' w" }上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
' j) h0 J7 x. d' \嗯,可以不用placebuffer,用buffer比较好
3 D( D0 S1 l' _6 R5 R在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即" A. r2 |* g- |9 _/ s
is " \8 I" X$ B7 t! i4 Z/ u$ w+ p; r
i : integer;
. M9 k1 `& C/ a8 uobj : object;
1 K2 q5 h; _4 n( N8 o& Zta : table[object,dateti ...
  G' m& s% e. [7 n
非常感谢你的回答啊。/ m) A$ f3 f8 q% R& r
这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表 $ i: |0 Q$ x, p% u9 y+ U
嗯,可以不用placebuffer,用buffer比较好- P- R; L& x  a; V! y" `  B+ D! L
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即8 m8 \7 }2 l& Y+ E
is # r: r* B; }8 s0 l, x* v
i : integer;& n* z; }, j: y1 n
obj : object;- ?/ c+ s3 p3 G9 m
ta : table[object,dateti ...
, d0 {! J1 y0 I9 c5 y; T0 \
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
$ w9 }; ^7 e, e请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表 5 J$ n1 n3 j6 u) n2 R5 P. s
嗯,可以不用placebuffer,用buffer比较好
2 A; K) l6 X/ @, Q$ |/ q3 l; e  M( H在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即/ J( x5 K) X' ?7 p* P
is 7 D) R8 [- U5 _9 o% a
i : integer;- w- x. W* U; I6 Q/ l/ H% x0 C5 J
obj : object;
$ D* u: `. N) j* ita : table[object,dateti ...
; a  O& o' C; U+ N/ i2 [/ ]
5 @: }, _- \, [  y  J
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
" U4 E6 D- A5 D$ Y$ n7 P1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??4 [0 n6 h/ l6 M$ D% v
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。: v2 A3 W' J: n5 C4 p* l
个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表
! Y" R" k& G: E0 `- ?) l+ f: Y* I( W" e
5 P! i* w% c/ N) `+ J
3 o! |9 M! n3 H, \我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。* o5 |0 @4 q  {6 H) o8 L  o: ?; r
1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
. G1 Z5 ^5 ^- w. {
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?) {1 k9 _( N0 G. A# L" ?2 i) o) \
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好: l8 E0 ~# W( s' K
: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即3 @2 B# h5 f% n
# 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* f; e0 E. ~+ y' \' @
i : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q
6 R% C( k3 S2 B0 p' x* \& \obj : object;8 X6 F$ q& s6 x5 p
) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];, U+ k8 m) n) g- Q
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo+ E% J" ]4 y* T- l2 E
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m
. k/ @$ ]' p7 B2 tfor i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T
( O) k8 l! P7 dta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F3 W2 f% A) U' k+ G
ta[2,i] := buffer.mu(i).time;
; B$ |* z/ I9 R4 u: a4 }' P/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;; k$ r; [3 k' J' j5 g: R( w
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
7 ^  y0 m& h8 L. E" ?/ ^obj := ta[1,1];: G: e% t0 a' y' H% l
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);- j' X( E- r0 V2 m* N+ e9 C
4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J
7 x9 N* Q2 H. p上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-28 18:45 , Processed in 0.020836 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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