|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 & N8 {. _" A* ^' | u8 U1 I
1 @' S9 ?0 ~, R$ {2 w: M3 t各位前輩好: |( N" ^7 W& _3 F; C
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
& e9 ~1 j2 K+ O: U我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
' m e3 P4 \0 s7 i我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。! |. W# e& J2 e2 T7 r
我的問題如下:6 e0 R. U; x! q( v
0 l. N4 ?* H6 \8 r& v
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?1 a* i8 J, P* g; p! @' ^. h7 S# }8 d
我目前想到的寫法如下:
1 r' b% o/ I$ F9 r: S Y(a)如果Machine1是搬運起點,放在Generator裡的Method' ~0 ~" M* A: B! U% t6 K& M
is4 r8 r( L/ `2 T+ F
do
: w ?( F0 s3 p9 M' E8 q+ d2 Wif Machine1.occupied and transporter.empty then' t. o' `% V' X8 ~; C$ i- D2 a: A
if Machine1.out=1 then: \! V9 e" a/ h: ]0 S% u
transporter.stop;5 c6 x( Q8 I3 e: Y# p
wait 30;$ W; b X6 |# S4 a+ d' w
Machine1.cont.move(transporter);. @& q2 d; x, w5 m7 A' K. I$ J4 T
transporter.destination:=Machine56;
; u9 t/ Z0 L- d4 f Machine1.out:= Machine1.out+1;
9 M) z: L+ ]. {2 J6 Z' ^ transporter.continue;% W2 R# a3 G3 E) Q3 q, w7 s% d
elseif Machine1.out=2 then
1 M% [7 M: A9 c2 x. K# Z transporter.stop;& p/ _4 o5 b; g8 \
wait 30;$ L! O5 Q" R* e* ?2 N% I* \. X
Machine1.cont.move(transporter);7 }) Y$ c" r. ?6 {" u7 b
transporter.destination:=Machine76;
. x, S! E2 \6 H Machine1.out:= Machine1.out+1;
! c# p& Z4 A* m* @4 A transporter.continue;* [) o- R+ t! Q) v9 x p' j
end;5 {5 r. @3 l- v7 M. ]9 D
end;
0 D* Z& v. g& V# v% n3 Tend;8 K2 c9 E# ]3 m. `/ H$ O
+ U5 U1 d' k) \3 f" [; d: ?+ H m. a3 b0 x$ Y6 D* k" x5 v
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method2 g/ u; X/ g0 q3 A" j' f5 G
is, T: S E2 @: B: y8 c
do
9 Y1 R' `: F+ w) H) C4 R# @if transporter.occupied and transporter.destination= Machine1 then
& {/ H) P4 P4 x transporter.stop;
7 G4 k; T) ?9 I; }& f! a wait 30;
0 P0 E6 B6 ~" n7 l- s transporter.cont.move(Machine1);( x' _+ |0 T* y9 }) y& o
transporter.destination:=VOID;
" `8 Y# G: j2 C7 D2 C, H7 J3 \ Machine1.put:= Machine1.put+1;0 c3 S2 r! i F# f1 f6 s
transporter.continue;% p. O1 S* f$ e8 B% h
end;& u1 ?0 q& z% O! q! V M) y
! J$ R! r3 k6 `( p, ^' B& O! ?" Y
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?: N" w6 l" u3 P( x" o
: j0 }; T0 f& c0 @# d! O$ D) U$ p
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
/ C/ ^: l1 w3 V9 q3 T! F# a* h& |+ Y Q8 Q
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
8 f! m: J$ N4 S' Q5 y
1 d; d2 T- j0 H9 ?5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
/ j7 q$ x y5 Z4 A. ]. F/ I/ V! O5 u9 D$ C+ J. ^% d+ C1 h6 \/ F6 C2 [
+ K) b- L3 `% H
( G( K7 d. h. l3 f8 N) u
* m" _ ^8 A0 \' L+ E
以上麻煩各位為我解答了,非常感謝!!!!!
6 ]# V& ?, L& ^2 h0 y+ `$ ~0 t4 M0 Y# m; \ N2 w4 H& j% t
: z2 X3 U+ r6 Q: u( B6 A8 y" W# V& k: c: u
* @) D% m W4 i1 u: k: n
|
|