设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9424|回复: 6

[求助] 调度优先级

[复制链接]
发表于 2009-5-25 15:05:18 | 显示全部楼层 |阅读模式
5仿真币
对于PlaceBuffer中的工件,对其按交付日期排序,交付日期早的优先进入下一个SingleProc。请问怎么编程实现这个功能?可以的话麻烦给出一个范例程序,谢谢了!
8 G  ?7 ?" y/ m5 h' l$ X0 q2 @$ c另外Control里有个Pull Control是怎么一回事啊?
4 {7 g' m" X7 n/ O  P8 d1 G# k还请各位帮忙啊,比较急用,谢谢!

最佳答案

查看完整内容

嗯,可以不用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比较好
' G8 m( P6 d' _/ f在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即4 N/ ]9 n! T9 t* ?1 F  D0 Y/ E
is ' i7 A; O  s) y  n
i : integer;" F# h- H4 v* o8 B
obj : object;
# g: q( b* l2 |. @# [& U$ t- ^ta : table[object,datetime];6 Q3 ~% x7 z2 `: y
do
# k. X3 v- r5 ]ta.create;; ?; i0 K& c+ j! U* W
for i := 1 to buffer.nummu loop
1 M9 [3 ?: R. B, ota[1,i] := buffer.mu(i);
0 F4 j3 n2 x4 c4 X5 vta[2,i] := buffer.mu(i).time;
5 T$ O: A" Z% [/ N$ e) Z% u" L" pnext;  i1 @1 F2 _& W, ?
ta.sort(2,up);
: G3 \. {& ^6 X* Fobj := ta[1,1];9 G9 ?" c  @+ E! F  y
obj.move(machine);
5 L( `1 l8 l% \+ H5 ?" W# ]end;
' I8 ]  I' ], N+ x% ~: S上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
 楼主| 发表于 2009-5-27 14:11:20 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
; t2 s, C8 u$ F# `) h; ^. K( E嗯,可以不用placebuffer,用buffer比较好/ q: C. y7 s: `* F  n# G( U
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
8 O) k8 D% k/ X6 Gis
% M5 u! v) F2 o( X  ei : integer;
" i* I: y: P( Dobj : object;+ R* B/ S4 D0 E$ D, `" j0 @
ta : table[object,dateti ...
+ m" x& Z4 C: g: V
非常感谢你的回答啊。
3 @" k, R6 k1 m) J: {$ Q5 [8 R这个思路好像确实可以,不过我还是碰到了一些问题,结果不对。可以加你QQ请教下吗?我QQ是516014959.
 楼主| 发表于 2009-5-27 17:46:54 | 显示全部楼层
原帖由 liysunny 于 2009-5-27 11:26 发表
6 Y9 e8 z8 e% `嗯,可以不用placebuffer,用buffer比较好& z: p9 x$ {, M, b0 b
在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
, u( b$ N$ e5 W. O- i" eis
0 v0 K1 R0 O6 e/ p: ]( }: ni : integer;* Z6 M* v. a6 N5 b2 y3 z. x
obj : object;- ]$ p2 k7 ~! h* I' Y* I
ta : table[object,dateti ...
% |( e6 }  x- v# s/ t. r  [
liysunny已经帮我解决了这个问题,在这里对liysunny表示感谢。
3 b  V) O& W8 l# P. v请问怎么将仿真币给liysunny
发表于 2009-5-28 10:06:33 | 显示全部楼层

不同看法

原帖由 liysunny 于 2009-5-27 11:26 发表
8 g4 B) J. w* w$ r; [嗯,可以不用placebuffer,用buffer比较好
( ]% G" L  U* J& i4 X在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即6 B+ n9 a6 T* Q. }
is
$ D9 \9 u) ^% Mi : integer;
7 [& M$ @6 W5 f  B+ E3 `obj : object;+ Z" q- R1 E9 e5 E" G0 |
ta : table[object,dateti ...
9 X3 f9 q2 `5 V6 n

' F& Z2 m0 U$ z我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
3 z$ A7 b% N3 `7 u1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正有mu在加工呢??+ q9 m3 Z9 S! x3 W! N0 d
2)当模拟快要结束的时候,也就是source不再产生mu了,但buffer还有堆积,buffer里面堆积的mu的优先级和它的位置并没有改变,还是按顺序(maybe FIF0)出来。
4 e( f4 ~# u4 `4 k8 C个人拙见。
 楼主| 发表于 2009-5-28 10:15:14 | 显示全部楼层
原帖由 gc_jiangwust 于 2009-5-28 10:06 发表 1 c- T( r+ W9 k# m1 h
7 [6 h( I" x1 R7 m# h( O, M3 |
/ H  j: g: P) K$ z
我怎么觉得这个方法逻辑上有问题,不知道楼主的模型的其它边界条件是啥样的。
* H2 [4 D) ?% L8 \" @8 C5 l1)用buffer,就说明前面的工作节奏快,后面的工作节奏慢(有堆积),每当进入一个mu的时候就触发一次 method移动一个mu到machine。如果machine上正 ...
' L( S# F; P! ]' R
是这样的,后面做了一点改动我忘了写上,这个Method是关联到下一个Machine的Exit。即当后续设备上的工件离开后,调用一次程序,对Buffer中的工件重新按优先级排序,再取工件。这样就应该没有了楼上所提出的问题了吧?! d1 ?( X/ ]8 M& w4 M8 h
感谢gc_jiangwust 所提出的看法~
发表于 2009-6-26 09:09:47 | 显示全部楼层
嗯,可以不用placebuffer,用buffer比较好
! `3 d2 b+ [. t4 W: M4 Y' k  B( W7 ^最大的系统仿真与系统优化交流社区在实现的时候,可以在buffer的entrance处设置一个方法,实现零件进入buffer时,对buffer中的零件进行按交付日期进行排队,即
/ f3 O/ b) `2 ~( X# 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
6 M5 q6 `% A) v. p, v4 ki : integer;最大的系统仿真与系统优化交流社区  `& ^! b3 @+ _% l0 h0 C2 Q" ?2 T$ \( T* R8 T, X
obj : object;
# v- d; q1 B/ @$ {) r/ [4 P; B/ d: b; K/ b0 Q) y最大的系统仿真与系统优化交流社区ta : table[object,datetime];1 h) d" g- Z, x) a
) k; U+ @8 u3 {5 G4 F  l( U仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastdo. L; u) y8 A' o$ s
. Q1 A( r0 @+ o. h+ n7 q. N( e8 [ta.create;最大的系统仿真与系统优化交流社区2 ?/ j0 W% ~: B3 j8 W% m1 G% w# i% `- d7 L, z
for i := 1 to buffer.nummu loopwww.simulway.com: o1 s4 }4 t$ A/ Y- F; T; X2 B* m1 G$ X- Q% ^+ h: C6 `
ta[1,i] := buffer.mu(i);仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repast0 c; I! k7 f1 x+ F
9 H( b8 Z$ G3 f+ b6 J& c1 x# mta[2,i] := buffer.mu(i).time;0 @+ [6 _* G6 `) t; H
/ e9 \& n5 w6 j仿真,仿真论坛,仿真软件,物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真,arena,anylogic,automod,extend,em-plant,flexsim,promodel,witness,乐龙,swarm,netlogo,repastnext;! x7 o/ {: V- A6 D3 i
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( ]5 c9 [8 X) d+ o
obj := ta[1,1];: Z6 w7 }9 p9 j2 p4 e; N; ?, z
: C: k6 N# U1 E: t% r5 p/ \0 b最大的系统仿真与系统优化交流社区obj.move(machine);
) Q& W8 p' H; U5 }, g0 k- m6 r4 v" r8 O3 l0 g$ s" ]- lwww.simulway.comend;www.simulway.com: D- u% L* ]# t( p* G) J4 G% W9 b8 h. c" Q/ u  O+ N" D
上面所提及的buffer.mu(i).time就是指buffer中的零件的交付日期,这个需要在零件进入系统之前赋值给零件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-13 02:13 , Processed in 0.019466 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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