|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 ' |+ z3 W: H2 W5 ?+ [
+ t' ?% I# K( W: m5 H% y. ^7 K各位前輩好' O8 E- A7 c% P5 `2 h
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
- L; k1 G: a9 o$ e Q8 y1 Z0 W3 Y我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。* I) m& @' V, V( a! _# r( P: q4 l0 W
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
# a9 z% U4 E M" ^# Q3 b我的問題如下:: C2 {, X- z9 l' Y3 a
7 A6 M- k0 q; h5 Q+ G+ V- G$ {1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?) N0 O( X/ m. s \- h
我目前想到的寫法如下:4 B6 y$ y: Z1 d, w0 K" Y
(a)如果Machine1是搬運起點,放在Generator裡的Method1 V8 t5 T+ O$ k4 y! @; K- `/ m0 q
is
; G+ S% n2 B1 ^) p3 Z* ndo* Y3 I G7 L" g* \
if Machine1.occupied and transporter.empty then
, c: R7 U9 [$ n) M$ x if Machine1.out=1 then: @* U! Z. j. o! L- Q
transporter.stop;$ ^( F. y \# s, ~! @7 W5 o# I. C
wait 30;3 v% c' [; D; j' U1 ]* c
Machine1.cont.move(transporter);
/ h$ e3 a6 X7 g% I transporter.destination:=Machine56;4 C+ z) U% A2 ?9 q
Machine1.out:= Machine1.out+1;
' Q) A, Z! l8 |5 t7 V transporter.continue;* {! h# t, f' N8 n0 p3 E% X
elseif Machine1.out=2 then3 X$ E }) S% \/ t3 Y
transporter.stop;' G- A/ O) y! d) Q% k2 P- l0 ?
wait 30;2 L( C: O Y$ N3 _/ m2 e
Machine1.cont.move(transporter);
. p. m7 ?3 |1 w! }( l7 v transporter.destination:=Machine76;6 U9 b9 Y/ \# Q5 \- n
Machine1.out:= Machine1.out+1;
L. C+ f. w3 E transporter.continue;
/ o/ G4 Y* P9 @; {1 d1 O6 m2 lend;+ E3 {& F1 C9 Z" c# _# [: x! r( W% _
end;
1 Z4 B; L. D ~% l0 pend;* }' t( C* h; P' u5 G5 H
: }2 h- _4 D/ X: E% K7 y3 e* w0 @: Z- r; L
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
$ O: }9 G0 z; l+ M' Jis$ V7 v0 |# s* _( q( [, l& h+ n) Z' j
do' b* N9 N. O8 F
if transporter.occupied and transporter.destination= Machine1 then. {& w& T- F7 C
transporter.stop;+ l! T3 e- U# K0 Y5 D
wait 30;2 }: b1 o4 Q. v8 `# g2 _
transporter.cont.move(Machine1);
- Q1 o7 c j( n transporter.destination:=VOID;
[3 ?6 i: m" E# y Machine1.put:= Machine1.put+1;+ u& [% E1 i% `! K$ ~9 }. w' y
transporter.continue;! V) m$ P& Y. j; }
end;: f9 {2 K4 E% t: g' R/ j
6 c+ ?2 i4 }) H. m
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?5 n& O x" Y9 t/ |; \
4 f+ y( N p; H4 E, m% d( ^/ a
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
W% b9 t' H# u( `& ]6 E! H
w" b0 h6 C% g z+ ] 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
: q% f @9 c+ S9 V7 @: i
! O& S8 e. K2 i4 `4 ?) T5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
% \# @+ K; u" g( n
6 e. h3 l& q" k+ a5 c0 w! @. ^3 D4 y7 x# k
! L. K' a2 Z3 I/ F
; ~7 f& w! e4 c5 Q: {4 t. T以上麻煩各位為我解答了,非常感謝!!!!!: z& }. S9 S( O" _3 D
) G: ~) r: J, u. E! r
4 E% o. R6 _: T( T `) j R% R9 s* y6 O, @, ^& o- r' D' ?" N$ B
& {& V1 k4 P$ S% w6 j1 }+ B, l |
|