|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
2 R; j: l9 T% q1 L Y+ \0 V. _: h4 |1 \, L: h2 I% s6 ?
各位前輩好* M* C- v9 G: n, w7 \
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。- F a& [; q3 v" E* H
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
( m0 Z% p1 y3 d, H- f7 L; f我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
- Z" Y$ c; F6 R* `3 |我的問題如下:
" R# M' }' \) T; r0 T; Q
# O% F4 k- g) b9 Y1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?/ E$ V3 N; x: R/ b" i) Z3 ~
我目前想到的寫法如下:
# q4 M4 n* x6 _9 O(a)如果Machine1是搬運起點,放在Generator裡的Method
/ l: w6 C* h2 r3 f; s* r: ~7 M/ sis
, q/ H9 C3 y+ V" ndo) a8 w6 A _& g$ z
if Machine1.occupied and transporter.empty then( @3 c! }7 h) M' F8 Y2 T: C+ V3 u
if Machine1.out=1 then
- ^5 K3 {( [% ?" o transporter.stop;
8 M; @ W6 ?/ j# u1 A; g wait 30;
8 ?# o- O: y4 h$ ]6 ]0 [; m Machine1.cont.move(transporter);0 e' \' J _8 M s
transporter.destination:=Machine56;
' T/ g9 e w5 k4 m+ [ Machine1.out:= Machine1.out+1;
( b+ R" {% A a3 O6 _ transporter.continue;" l1 ?& I6 ]- j1 e! E# m7 C J1 B
elseif Machine1.out=2 then$ ?* i6 P" I1 {/ v3 Z, B' [
transporter.stop;. X* V* \- B7 r3 \. O9 j2 @" ]' @
wait 30;$ l8 z i" H* q8 F$ N; Q
Machine1.cont.move(transporter);
) v1 W7 U7 }$ R. y transporter.destination:=Machine76;
% y# _: `4 N9 ?* [6 D4 O; F* @ Machine1.out:= Machine1.out+1;) q; m$ T8 ~8 X; P7 w7 \
transporter.continue;
8 G* v, M9 l2 [: ^: s6 Xend;
1 X% f8 A0 }; W3 G) Z( t6 R. eend;, [0 X3 C' c$ P
end;
4 w) C/ b% l J' W: O8 v @
- B6 w. [( W4 D
- t1 ~9 k: g4 n. ?- N5 B(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
/ B# k) X" R2 F, nis4 P: E$ c/ J- f6 _8 Z
do
! b; ^" U% B' d6 U @0 l; _$ P$ \2 [if transporter.occupied and transporter.destination= Machine1 then' C% n( j; ?& ~* P7 B5 Y+ y
transporter.stop;
& `6 W0 G5 I- k. p1 X/ u" i wait 30;& C! X6 C" L; _8 J6 g/ j* I
transporter.cont.move(Machine1);
& N2 g E8 U2 U9 D5 `9 h transporter.destination:=VOID;+ k; h! O+ F9 s
Machine1.put:= Machine1.put+1;
" I$ H" d3 M P. j transporter.continue;: P/ Q" k2 I$ X
end;, K! w* F8 _( j. b/ D% R
1 o2 z# H0 t7 k( L# ^
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?# H4 j% u$ ?9 Q' N* Q1 [$ j2 U
0 t# j$ @- c3 b! G
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
% i3 t: L/ ?1 E1 M8 G- g" n. p# O( ]$ F$ ^0 s- A
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?2 B- R# n) C/ Y# F9 S6 [: F* m
$ r( c" m& {4 A. C1 i& L& j5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?) D/ ]! A# s/ r9 d9 p9 ^; C
% _+ O. T N3 a, t9 `6 Y. S& s
7 d3 o8 d) K* A$ P( v2 d8 C
) s9 Z" J c. R7 g5 k4 G& f/ J& S# e
0 i4 D. z I' f, S5 r" ^以上麻煩各位為我解答了,非常感謝!!!!!, h+ M! ?2 M5 a, b
' \! L7 F( G7 M& H9 d8 y
0 [5 U+ c! O' K, d4 f4 J
, V+ }% Z- a( @% Z5 S6 |4 ^; m% W {& u
|
|