|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 3 s2 r4 V, r4 i# A
+ B2 Y5 L9 A& u各位前輩好
0 @. D4 {& F& x& p) L/ p I8 a, o我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
[! ]. \1 p; ^, L, w0 R o我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。2 n: K( H# y) L) A
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。, _- }' x8 `( o; w# \6 S4 ^
我的問題如下:' { ^' H$ l) K3 X
( p U! Q, ], y, t9 M1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
3 i& c# y4 f; }: K6 j* a T我目前想到的寫法如下:! K! A. R8 }. N$ ~# @6 Q
(a)如果Machine1是搬運起點,放在Generator裡的Method
; A9 o2 x8 a r3 @+ v* d- T- Uis5 n3 X/ K3 d- Y; X) h3 `
do
' U3 }' J2 N7 y9 z2 m0 vif Machine1.occupied and transporter.empty then
- W* \ V8 N. h6 E" i: m if Machine1.out=1 then( A. k7 p1 n, S( ?9 Z) d
transporter.stop;
8 C$ z' F, m: `$ N wait 30;
: G- c$ R2 j0 f9 e Machine1.cont.move(transporter);
4 ~- }& d' L3 L r% w& B transporter.destination:=Machine56;
7 @1 i. \( O* O$ `7 k Machine1.out:= Machine1.out+1;: c3 r3 N3 |! i
transporter.continue;8 ?1 y- }2 h. _7 P# l* Q3 Y
elseif Machine1.out=2 then: u: I& z6 X5 r; }
transporter.stop;& L( v# x6 o! w$ L9 {
wait 30;; m5 b# {" z6 r5 w- T+ g7 z
Machine1.cont.move(transporter);
* J% ^4 G7 m" S3 i transporter.destination:=Machine76;* `- _% i" f v) h" ?& E( H/ o; ^. q
Machine1.out:= Machine1.out+1;
; c5 K9 o5 i0 a" ~+ z transporter.continue;* l0 Q/ O; ]1 Z; u7 y+ Z" E
end;
+ T7 ? ~! u$ Z# Aend;( K. L! k# L# B3 W' m6 s h) T$ Z# Q% p
end;, b, A8 M8 o& r0 k0 L
9 D3 w+ X( D6 L: C2 ^% n" z7 g3 H7 W- B; s) i4 _! M
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
! i8 l$ a/ Q/ t+ c kis. S4 c# b4 ]6 G s4 m7 f3 f1 J
do
/ _7 T C+ r$ A/ hif transporter.occupied and transporter.destination= Machine1 then
" z) G" J$ E, q7 x. R* @ transporter.stop;
2 i7 ~, n4 y5 n: b8 A$ T wait 30;
* M9 `! J. ?" [: {6 N' Y- R transporter.cont.move(Machine1);
* v: O% ^8 X, } transporter.destination:=VOID;
9 D7 ]) `5 { S3 \7 m# b# k+ S Machine1.put:= Machine1.put+1;
. C8 ]6 S ?! h' R* b8 W1 g transporter.continue;: i( U: R1 I* @/ ^
end;
5 `+ K8 F+ |2 b4 P" X. r, A" p: X
, L2 W: P" }! D5 E6 j2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?7 E9 X2 R7 H+ Z& a
. \, ^0 m) T3 D3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
0 Z. N7 m! w9 ^: X$ V* A% G2 ]0 Q* T% v% h1 W9 T; ?
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
' J! Z2 g8 [' I0 r% X$ f2 I8 e$ m! {7 O5 r7 ^/ a- O
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
3 D* w" }1 `$ k' |
/ \+ n7 i9 K" y/ p) o6 o2 |( S+ f. ~
, m* A0 X2 ?# i. h4 W" X8 t$ p6 }% I
1 Z1 A: n0 m( ]以上麻煩各位為我解答了,非常感謝!!!!!
I8 x4 g. @6 d, M8 }4 f1 G3 W1 h
; E+ [1 F7 Y- T0 J- v
# A) B N0 V4 R( [9 d* _9 A5 v# Y% \, j1 f! D
|
|