|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
& L( B; K* L7 [4 Z. e% l* g k, d4 L) d* o
各位前輩好
: F3 x: v5 d6 `" [* v% E我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。; g% {0 n6 q$ A% L* @/ V+ I9 z* r
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
) l/ l8 L( ^& G6 u& w+ y9 P0 D我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
! s& l! ]5 O- a2 H+ t6 G& u2 P4 o我的問題如下:
% J6 j. x; ?( u" y! ?" x. G
. n; f* s! J. N; k; l- o1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?0 q; w* D$ P8 y. N1 |# \5 ~, [
我目前想到的寫法如下:
$ {7 I9 h, x7 ~. Q; t(a)如果Machine1是搬運起點,放在Generator裡的Method0 d5 i' p, }" D6 Z% l ^+ j3 O
is! @- I% _+ h- |! d
do, E& q V# Z* f- V/ C3 n8 @
if Machine1.occupied and transporter.empty then# ]8 M0 z3 {; y+ R) I$ `
if Machine1.out=1 then7 w4 D! N! |5 _7 t
transporter.stop;
& C! J' H2 K3 ? wait 30;' G) h7 a; R( J4 i
Machine1.cont.move(transporter);
' k) j3 D) B# V& S transporter.destination:=Machine56;' K6 r& w+ W# _4 W' y! x4 H2 P4 B: G' p
Machine1.out:= Machine1.out+1;
# C; G6 \) M0 J: c! H% a transporter.continue;$ g( l! i( x6 Z! {5 w
elseif Machine1.out=2 then/ t/ j8 m- v+ w
transporter.stop;
8 I# f2 T6 C' w( C+ W7 w# C0 O# u- k4 m# I wait 30;
! j8 U- ^+ k5 ^4 S+ @. x Machine1.cont.move(transporter);
n% B' M& B8 r6 [) w1 c% O transporter.destination:=Machine76;5 @4 p* Y( ?: }4 N; s) ^) Q
Machine1.out:= Machine1.out+1;% p% V$ o) q" a/ y( o$ d
transporter.continue;8 `3 {, G5 [& D1 ^" Z* Y
end;
2 b7 N3 j- ~, Tend;
# i8 C' l' j% x3 C: w4 ~end;
: p( q, p7 |- y
7 w; d( P3 ?, p: U x" V% y* p+ z' l- q @/ ~( O8 u' S) X7 ]9 a
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method4 ?2 i( q b$ a" n7 {; G) `- F
is
7 t6 G) v: A9 @do) x ~: h, G! y+ F) J' s0 `
if transporter.occupied and transporter.destination= Machine1 then
( a- @. J+ W# U! ^ transporter.stop;
' [; j/ |/ N4 v J+ g5 P wait 30;
' K6 y5 |3 e( L' F8 [5 F+ p transporter.cont.move(Machine1);
3 t! P1 _; a1 Q, `9 X' h" V. ^ transporter.destination:=VOID;4 `4 U# _1 k/ ? M9 C, J% e, q
Machine1.put:= Machine1.put+1;, V( a( R \* z- B$ u
transporter.continue;- J, v2 X- U' E
end;5 f0 }9 }/ X. Y
( }) z' u( K& V) p/ Z0 Y
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?5 C( d: ^' d( X$ |' d3 O" j
# b3 @( G9 |0 g% V& F7 {0 k8 b
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?' Q% B! G* b0 ^$ i# D
0 ^) t' j3 `2 c" J, _ c8 C8 J5 J! W
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?* e# ? J/ z( t' o& w
0 q1 I H5 f; I7 O( j9 X s( n" A& r& l5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
4 f/ n& Y$ ^) x. J# l9 ], o1 @1 |. n# o3 p" z. S
8 h+ ~- @$ J# c) @ y
5 {. X7 ^1 _' m
4 |/ T2 B" i# \4 u4 `( ?以上麻煩各位為我解答了,非常感謝!!!!!
( Q6 G& K) L/ f) Z1 \' b& S2 c9 V) Q( Y4 C
: f, i$ g, W0 y3 L5 _5 d2 \
+ X1 d+ C- _6 m ^- a& @
% M7 A W$ h7 n/ i
|
|