|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 : d* b% K! |2 w( C6 l; G8 J9 s
. E) H2 Z3 I! n' B$ ^ n* h8 F8 J各位前輩好
$ t4 g' p5 U# G t6 c+ q# \我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。5 a1 V- T8 b; _. y7 u
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。# ?: v% c& v7 F f) ?) \
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
; i U* ?7 z+ p. i1 A, S我的問題如下:
3 E6 c! w, p! M0 X- G- g/ ~ K& w9 N, t
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
k7 O! [6 C7 D7 `% Q* u我目前想到的寫法如下:
) O+ @/ Z2 L1 |2 k2 n3 t(a)如果Machine1是搬運起點,放在Generator裡的Method6 O# T2 \3 i3 \( {, z
is8 b; {' C* I i* N& S3 M* }# P
do( U6 U s# Q: Z& ^, L
if Machine1.occupied and transporter.empty then! @$ K) c) R+ i1 m& Q
if Machine1.out=1 then2 ^/ |- K, W' `9 O" q
transporter.stop;
/ \4 O6 @9 }' Y* j. `/ l4 B wait 30;7 O% w( d% P G6 D2 n
Machine1.cont.move(transporter);- R& V W' D& ^$ h
transporter.destination:=Machine56;
' h( m+ {9 l# K5 b4 w Machine1.out:= Machine1.out+1;
- e2 s+ D, a% t- ~, u5 o transporter.continue;
! ]8 u! M5 l }9 [' ]! M% ` elseif Machine1.out=2 then
& m6 M+ a# b$ } k7 V. O transporter.stop;
7 u9 g' l2 K2 f9 R: J2 B wait 30;8 n% _2 U. K. d8 r4 ~* {$ F
Machine1.cont.move(transporter);# O( n Y' A L& |8 N; h
transporter.destination:=Machine76;4 p) f; G# c& R" E
Machine1.out:= Machine1.out+1;' m9 b2 s* I" P( t! J
transporter.continue;1 B8 g! d ^) A
end;
; `2 c: j) q* vend;
" l& k* D) n! B4 d) l- bend;7 I" I2 v: I8 D
* T8 C* r1 G% E% V" a, c) q% n( O
/ P6 i! I `# T$ Z(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method a' t/ z1 @& i. X- ^
is
7 y s" P3 G8 fdo
. s# A9 A i- gif transporter.occupied and transporter.destination= Machine1 then. C1 q4 _( g" \8 H4 R+ v
transporter.stop;' p* e& S# m/ E: a! c( i2 Z
wait 30;2 |3 L5 ]0 a3 B" c
transporter.cont.move(Machine1);( K) k4 x. V' H0 b0 n
transporter.destination:=VOID;4 S0 `0 {; E, l" l% K; _3 r1 S
Machine1.put:= Machine1.put+1;
# l( r0 _$ n! s% J0 L transporter.continue;
: w" j! W3 s/ n+ V! _& Yend;
4 K S. P5 }4 K# E2 I0 J, M3 N9 d9 v0 |4 ~# \
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?7 A! q* G) u2 m5 ]
; p* H1 V! ~) u
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?* y, Z! E0 @, z7 G" G
- d& F B4 I3 K# f/ U
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?' f/ Q* F# i6 a @
. M' a# c5 ]0 {5 H5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?6 ^( p9 O3 U0 |' l
' X, T+ M* Z/ Y1 |$ Q' |+ U7 x/ V% w- `' L# ?. `7 @% P- Q- y
/ ?2 ^, U( r3 u @1 {
" r( J0 v: F/ v3 X3 B3 _, m. h+ I以上麻煩各位為我解答了,非常感謝!!!!!) D) F( ~# S# N$ ?+ k R
6 a! q; W( N4 x% \& z& }$ I
0 ?+ p) d* X! Z9 T3 j. D4 d7 W) ?6 U- t
y) `# l) D# ?2 W. v, V; M
|
|