|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 + p* t0 V% Z( A6 x% ^# Q
- B; ~' `; S0 g+ R6 Z各位前輩好7 J) N) i! e3 C8 J% S
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
% Z4 U# k7 k, V. @+ _) K2 U- R6 @5 Z我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。3 k: {* T! `0 \' [0 X! ?2 ^' D- `
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。# k& G' {' K# |$ x
我的問題如下:
" H ]8 \8 h: e# L" R, l7 Q( n' E# x+ t) }9 P7 t
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?4 _, f7 D5 v+ f
我目前想到的寫法如下:
. c! Y7 K7 m9 X% {(a)如果Machine1是搬運起點,放在Generator裡的Method+ B i" i# T/ v1 K% Q2 \; J N/ G
is
% u" ^. }( Y* J9 m6 O1 O; ido
2 z' b1 _3 G- I7 e8 o# z3 O" \if Machine1.occupied and transporter.empty then4 }# y! v/ ~) {
if Machine1.out=1 then$ \! M$ X8 T& y7 W' M7 I- G+ \
transporter.stop;
2 H/ I. b A. e* O7 w* J; V wait 30;
1 ~, b/ I$ q' k/ R* ~8 x/ a2 h/ I9 Z' e+ u Machine1.cont.move(transporter);
! d/ l) G# z, \/ i transporter.destination:=Machine56;& m& I5 Z' b. c) N' g
Machine1.out:= Machine1.out+1;
& u$ D- S& d) M2 [5 \( O9 e9 t transporter.continue;3 Z; u, J0 [. T' e4 q3 ~
elseif Machine1.out=2 then$ y# K+ v# f: X2 C% c
transporter.stop;
2 N4 M& K/ d H! |2 Q# b; e wait 30;% T: B8 g5 [! L* ?. z% H6 K
Machine1.cont.move(transporter);- H* X2 H! K5 {
transporter.destination:=Machine76;2 G3 W) ]2 S& u5 W. y( C8 X! x" h" j
Machine1.out:= Machine1.out+1;- s+ F! a( h2 o5 P: ~
transporter.continue;% l7 F/ U0 q0 ]; `* C9 U
end;
" N: L" i8 C( e& }) v* ~$ v( gend;
4 D: u/ u' F0 X1 F6 d$ C0 f9 Kend;
2 k# Z& C0 Q1 s; d9 _ G: v' K0 M
8 y9 m# ?1 H2 ~2 T% v" ]6 N, ^
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method# ^# d( q6 l/ M% p3 D8 n' A; l
is
9 f$ F3 t8 x( `2 G1 edo
+ r; [, c$ z; p. x8 l$ N4 g1 fif transporter.occupied and transporter.destination= Machine1 then0 B( {2 \0 k% Q) H
transporter.stop;! M! P; x' ^5 p8 x
wait 30;- S- C( C9 A9 ~
transporter.cont.move(Machine1);4 W7 C1 z7 m6 a% T
transporter.destination:=VOID;
" w m7 c. w: v' x1 M- c7 @( C Machine1.put:= Machine1.put+1; }" q6 M) |: v" z/ a
transporter.continue; A4 ]) K, z, \+ \
end;' x7 h3 r& a# s. E) F: `
5 G1 N( J" \ W- r2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
) W1 J" m7 \2 n# ?1 }
, e. i% B) ?7 N" g& ]3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
' d3 U: ^) c- {) e0 L" N; L% J/ h5 M1 I7 Z- I
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?% X6 H) j" h7 R% \2 ]0 E
) L: \5 d9 e0 K4 }# `5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
/ A- i; h I1 I" D$ V
9 X; {4 I3 L$ v$ n% ]/ \) Q% A+ l3 N b, \" t6 u0 C
( k4 {1 b4 h. b6 {& g
( d, m' c. Q- U C! B; ]以上麻煩各位為我解答了,非常感謝!!!!!( M) t2 {" ^+ b5 j1 M1 \/ d* Z
+ p1 {' n" p1 ]* w: x8 X2 ?1 p
& V# ?8 ^; g% ~& E
, r5 G4 Q P% J. s
2 d! y+ F- g( Y6 Y- f+ A |
|