|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 0 P- z5 W; t' `& J3 A% ]
% h$ s% M8 O7 G0 q2 z9 w
各位前輩好- L1 V$ [4 b( H; _4 u* h
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。# f4 l- D9 u& u4 a
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
" o. x3 F3 o* G# _2 v8 e我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
. u& x2 _6 r k3 K* B$ a$ `我的問題如下:
! d! a" h( g ]+ L1 T$ ^! i. X" b- }! F0 k5 p* Q1 a; N
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
1 R! R h* r5 F- I* ?我目前想到的寫法如下:8 O5 ]5 p+ p# | J* s, l1 ]
(a)如果Machine1是搬運起點,放在Generator裡的Method
, d( |, H) L6 y0 j. V/ _is
$ }6 L2 v. u9 @& h& X% @0 ~2 Bdo, n6 y2 V' l2 Q2 g' n
if Machine1.occupied and transporter.empty then6 q9 w% b! `& N& y% ^* [
if Machine1.out=1 then' }! b) w" p: {0 u
transporter.stop;9 w6 t! i2 N+ A" z! X9 M. ?
wait 30;1 ~; I$ E) ]' o- E- j. M1 C
Machine1.cont.move(transporter);
$ W& J0 E3 c. q5 O% V. }& r4 a1 W4 i' B0 d transporter.destination:=Machine56;; G7 f- [5 J: v+ p4 J
Machine1.out:= Machine1.out+1;
9 J! g4 ^; k* B transporter.continue; g% @7 T0 K" `+ d, i4 ]1 y9 y
elseif Machine1.out=2 then
+ W7 J( U. m. x; v. @ @ Y transporter.stop;
0 K$ E* w7 H" ]$ U3 ^" F wait 30;
3 [; `5 P9 M2 O ` n/ q Machine1.cont.move(transporter);1 P2 A: a5 h$ n4 q
transporter.destination:=Machine76;, T5 V! b t! M- p2 y3 ~( H! Q6 T
Machine1.out:= Machine1.out+1;$ Y; u& P) c4 ~! X, H O# G: s
transporter.continue;
! d- v% G s. w3 T4 F" A8 U" K3 `0 Gend;$ @4 Q: Q0 ]" |
end;' r0 B- M* M0 @- {% Y, _
end;( F' n) v, W. O
) J; h( M7 Q" P" m4 O
' k- o; @' L5 s, P& _# o(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method8 x, }: a7 |. z, W8 W. @* H
is
7 G& X: Q$ O- r W3 x4 M7 Cdo
" L1 T) M& j5 X9 e4 t' H7 C$ Aif transporter.occupied and transporter.destination= Machine1 then
6 {* N/ z" o) _ transporter.stop;- K- U; [" U7 x' [' c2 M
wait 30;! M% r* x, z- Q; |2 H7 f
transporter.cont.move(Machine1);
2 z; A3 o5 a2 x: j" R transporter.destination:=VOID;
% a& ]) i z. s( z6 X* u Machine1.put:= Machine1.put+1;; m: z" r3 s5 y, i( P
transporter.continue;% ^5 o& K3 |+ D7 |! S' m" U) L
end;
' q5 E" R7 Y2 m
! O2 j! j' F# H0 D( W2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
% I4 [& B2 E0 z1 |4 D
) q! r6 M( ?5 n# _3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
# J7 l. H0 O* i( R9 B7 {" {6 f
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?1 H+ L1 b( ^) f2 T4 l0 e, T5 S2 X
" y. q: f) ^$ t+ c9 v {
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?; q" l3 W% k8 }0 B8 |3 C6 v+ X8 [
5 |4 N9 W8 f! \, Y( \! k q" A
- Z2 Z2 v" P! E' z1 `3 P2 w% u
5 M8 N- S0 _( o
* ?# h& g! c6 [/ o- M
以上麻煩各位為我解答了,非常感謝!!!!!5 M7 C( @% E& }. u6 D( ^. K
9 u& R* E! G9 L5 H& L6 N# G7 }3 d$ I4 D( B
6 D! N, Y- B) l: f) o6 S. [$ s0 L! E
: c& b4 u8 [- \. }3 q
|
|