|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 4 b+ [+ h& `! \, f3 c
' r. W$ c: S9 i5 Q, s
各位前輩好5 S/ R6 l" ~% K5 ^
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。/ s; X$ k6 ^) D) i2 h# _% y9 \
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。& h Y) c6 }3 U" S# d
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。8 x' ?& [$ I7 G9 w8 V7 ~" d
我的問題如下:' f! `9 s# E9 \- ^. {- U4 Q- b2 {4 t L
1 l2 k. w* d: @- A1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?1 l; E. J$ k! }6 O) W: ~+ P9 T5 ~
我目前想到的寫法如下:
" L" h* R3 k1 C. ]6 u+ ](a)如果Machine1是搬運起點,放在Generator裡的Method
( c0 e2 x. n5 {9 L( B. s+ {. } His Z' H! _! \- G) q
do
# `4 a' X- L; t; }1 P ?if Machine1.occupied and transporter.empty then
- s9 a5 f! x, B% N" f1 D! H if Machine1.out=1 then& S( w/ W6 F/ B, }' E* c
transporter.stop;& X o$ k( v, A4 j2 F' H# A
wait 30;
3 A- J/ \+ {9 K: c% a Machine1.cont.move(transporter);2 v c6 p9 k$ E8 t, `& `& i
transporter.destination:=Machine56;
: d0 H/ Z1 \# ]- ~/ z/ v Machine1.out:= Machine1.out+1;9 Y( R- w( }" g8 M9 V& _* D+ w& D9 x
transporter.continue;
1 H9 }6 r7 i# ^6 @% Y elseif Machine1.out=2 then
' a$ D% n1 P' X8 V/ f1 ] transporter.stop;
. [. r. Q2 a5 @7 q8 k wait 30;" p3 [0 b6 v7 \# x6 E
Machine1.cont.move(transporter); c4 p, D9 K$ b
transporter.destination:=Machine76;6 F3 y$ L# c/ |" |4 Y
Machine1.out:= Machine1.out+1;
' g6 b; B1 A9 h' P9 e transporter.continue;
# m% t# U" Q/ ^7 Q4 G# [end;
- T2 W* R" m! V0 O" Q' Aend;, ?0 {3 @& w* ?/ h) }
end;
/ a/ ~. ?' B$ }5 G5 s
9 L* n9 \+ d2 w2 @& W- c5 i6 v5 Q& g+ \
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method; G- J$ n( x' C. j; C2 v
is
/ e& K& M1 Q4 l1 q! mdo
6 u& k% ^) z% P& K! q* mif transporter.occupied and transporter.destination= Machine1 then- f; e, F: l5 n" u! X0 Z4 D
transporter.stop;; A4 Z2 X, K( D6 I0 t# z& t
wait 30;
- L7 H! N* s- F transporter.cont.move(Machine1);# [0 Z% @# X; C9 C: \7 G
transporter.destination:=VOID;
9 X$ l! k, T3 R( u# y |# U$ | Machine1.put:= Machine1.put+1;
6 k, B5 T! u: W# D3 m. V transporter.continue;
0 s' W6 g" `$ `7 r% B# ]end;3 ^+ I* R V* z0 {. i3 P/ m9 F
9 f4 z0 P2 [+ W6 S# i
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?; l0 D, R: j! O9 P: c& K
; ]: ~& \+ @/ O0 |1 g" N3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?0 C" a& `+ Z' @! z. w7 J+ k
# H) y5 u0 L4 c" N+ C2 V6 W: A 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?# A' b" |1 d- j$ I: r
3 G$ y* G3 a7 ?/ l; Z5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?3 U. e& x: K9 n% r0 _3 b
- Q# J6 Q$ E; N- x3 I* t: t6 h4 p2 D0 g' M) ]- [
; }) Y1 V+ |0 [. [; j* R2 g, Y" v+ C0 d
以上麻煩各位為我解答了,非常感謝!!!!!7 f6 z4 O; b* E1 s8 G7 ?9 {$ c0 l, v
# `& W7 ]. M8 R/ \
* h1 g \% N/ c$ \& k$ O
) m9 @$ D& e/ a) J0 |1 C6 [; U3 y% `- {2 _ g2 n
|
|