|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 2 h/ h& J3 {# w2 r: y
' a" o+ `( t7 j; V( j% r
各位前輩好: C8 [( R! m9 V; v) b2 R( g
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。: A( V7 @/ m6 L" J8 `# g
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
9 ]. `/ \$ M/ _我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
% I8 {9 [$ ~$ G2 g- ^1 i% S/ C, y我的問題如下:
9 J) S5 F, q/ p. h; `- I C
" p2 e3 c! Z5 b4 P2 }/ F9 m1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
9 T! F( Z1 M2 j) Y9 R我目前想到的寫法如下:
. M( A' @9 {, t2 S4 s(a)如果Machine1是搬運起點,放在Generator裡的Method
4 E: M" i! ^( f7 ^# z0 r+ wis! r" @: z! q' Q, s6 p
do
! @7 M, @* C3 ^# C3 R/ ^' rif Machine1.occupied and transporter.empty then
& w" A% S# n: F if Machine1.out=1 then4 s7 j8 l7 N; B1 }
transporter.stop;
$ H- y0 _" Q$ Q/ P wait 30;% _4 N8 k# s! d" N- B) V
Machine1.cont.move(transporter);
8 v9 K! G# U6 W. b+ w; S& w( J! ` transporter.destination:=Machine56;
n' H- j: y" A, {) d$ R; ^" e Machine1.out:= Machine1.out+1;, f9 r" }* h! ]
transporter.continue;- w' K) v$ |$ V) ~
elseif Machine1.out=2 then& q" ~# h8 }! f& N1 l$ h% M6 g& @
transporter.stop;3 j% A: y% o, V9 `+ h# }
wait 30;
2 O i/ [. O+ X; S5 _3 v Machine1.cont.move(transporter);
$ a3 q2 o3 F+ s. K. {, n7 X% z transporter.destination:=Machine76;
8 V0 d, o% D% c9 B; i6 d Machine1.out:= Machine1.out+1;8 t3 }3 U) B+ u& g3 P- l4 }
transporter.continue;% U4 G7 M: |- q) |0 K' L
end;
' b3 L# b8 D. D2 J4 s+ M9 bend;# T6 m* _' {1 J" e6 j7 i8 M. Z
end;
, C! I5 O# ]) O3 Y, x
. f+ D7 [$ y% K& R- C
9 i, r- B5 r% L2 a: U(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method' q/ N' [5 k5 r& h
is+ I. _6 S% Y: S4 ]5 Q" M! N
do' r0 _- o3 w: E5 V
if transporter.occupied and transporter.destination= Machine1 then# ]& B# B# Z" z7 Q" ^% Q
transporter.stop;! _2 R6 }8 w/ P$ ?/ @" s# p
wait 30;0 e* y2 x2 G: Z y& G D6 ~
transporter.cont.move(Machine1);& N# m" [: W: N, J1 l. S
transporter.destination:=VOID;
: j% @3 n4 K5 r% x7 V Machine1.put:= Machine1.put+1;
+ H: [; k* I z* T; c% ] transporter.continue;
/ B+ f; `0 j. H1 T( Pend;
3 j* {# C1 Q* ` ^, G
. A, q, F0 {! Z- e( b2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?, H6 A* b7 U7 I9 L+ ^
; H" M9 Y/ b0 W+ m$ A
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
( P7 n" u/ g& ~1 `/ H! _9 e- ?1 S' u! ^, _/ \- H
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
( z; l5 ~2 f' }) y" |# O: b$ D& J" B- o1 w7 [& @# H6 V" M2 E
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
( Q6 W8 `, H# D& u% h( X5 T7 e% F" X3 U2 A* F) N
2 i& A- R" s0 p$ J/ P
0 b& @# |$ O5 |3 F
: m9 e: ^0 Q, }3 q- n$ u
以上麻煩各位為我解答了,非常感謝!!!!!# y- \ n$ U" @& s/ s+ S# g- C* T
+ } H6 b0 C+ l- z1 u; a A! L9 j+ s. {
( n" t7 A8 P2 f, L) u4 y" M6 i+ p7 |' V
|
|