|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 ( H5 y- v R1 y9 w
3 p8 [- z; `4 }9 L6 D7 f( U各位前輩好5 G* w& ~: d" S* y: I7 L4 K( j* ]+ r
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。, _) y' U6 o; o' Q
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
, t4 B& h- m K% H* w! W我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。2 W" i% d& d) x+ h4 d
我的問題如下:
" y/ J' {, \$ q% F) L) O3 A& O0 `" z* r" p
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
! Q! Y2 W. t2 s1 R% v4 m我目前想到的寫法如下:
( h1 ]& n6 \* u% G) W( D(a)如果Machine1是搬運起點,放在Generator裡的Method0 W' F# v( D2 i
is. m0 E8 S3 Q, w
do
0 a! D, ?3 l p0 m8 q. o6 X# jif Machine1.occupied and transporter.empty then8 m+ ]( E: t* p
if Machine1.out=1 then
% [5 R" b1 n5 [8 o& ]& u transporter.stop;2 {% l# {5 S( J, ]
wait 30;
( X% s' D2 H% @. U: N5 J& P0 q f Machine1.cont.move(transporter);
) g) H$ D) Z+ v3 A transporter.destination:=Machine56;9 a$ I0 x4 Q3 N8 R
Machine1.out:= Machine1.out+1;
. R1 o; J1 b+ @* K/ H transporter.continue;
5 v4 _; c1 X; }( ^/ B% a elseif Machine1.out=2 then
0 K8 s c( ?7 x* n* A, `! d" M ] transporter.stop;5 [, Z; R: K! R
wait 30;- c9 k, i# T" Y+ |8 H3 ]: ^, X7 [
Machine1.cont.move(transporter);% E0 s2 O2 M, Y# L' h- O, }* h
transporter.destination:=Machine76;% _& a: |2 X' o' |$ z
Machine1.out:= Machine1.out+1;
) V/ y9 Y# i: R9 n( z4 n transporter.continue;
5 c4 f# L: H& }4 _: I/ f1 Q7 p# Jend;1 s$ I9 R1 {9 K& w7 h
end;
/ c# b" |7 s. T `end;+ C# E% J" v3 L! y5 i3 ] t- C" y
" j0 V9 Z( V- G8 p* |/ i# g F7 n5 }/ {0 @0 j$ ]. S5 @' X. X2 f- P! `
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
1 f6 z2 z5 O, K' g/ Bis" Y: r6 P& `% |
do
! E6 |, {- w* v- b( }if transporter.occupied and transporter.destination= Machine1 then6 ^! N" S" E0 G% P6 H9 Y$ Y
transporter.stop;* j7 C3 k" K6 \. ? U
wait 30;
9 Z4 ~" T: b" \4 C F) ^ transporter.cont.move(Machine1);: b1 C* t8 ?; j8 q
transporter.destination:=VOID;
7 S7 H6 d6 t5 |# P. k Machine1.put:= Machine1.put+1;* _3 _# p6 Q0 |7 D. D
transporter.continue;
2 C4 ]" L' P" S) d, c0 d1 d3 Kend;7 n5 V, c& o$ a/ V6 a
; G, I. o0 T- a6 Q! M/ {" Q
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?/ c# \0 x0 w, d+ ^6 j; }: n5 J
' C8 _0 V- a1 U4 I0 @8 W
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
. t( h2 [( L* x* H% c; Q# n# ^9 ^, J- O1 K7 ]
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
8 h& M& n" w. W" s0 E: X+ D/ [4 O- F- C$ h: X: }1 M
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?1 C; [7 L& g, M- e5 i4 _5 o) T
5 r( d4 y$ P, L# _- i3 e( K# H
7 z! d5 y+ f# \4 C+ E* F
3 i2 b1 O+ w" a& g5 y, O5 ]- C
% q" {# a7 _3 z& y; H x1 z以上麻煩各位為我解答了,非常感謝!!!!!
' S) _% A$ D+ g7 `
. o, f6 }8 l# ^9 W! D4 q3 u( P" t% L6 P* L2 \2 @: w
7 n- E: k N }$ h
& c- l! s" v. q: c! F, ~ |
|