|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 6 a4 `4 e9 m6 U
: \& s8 R! W& [" @; e+ D# ?各位前輩好
3 P" A7 ]- r- G我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。% A( l- h4 X3 [6 \; P
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
9 d- n* T% |) k8 y- L我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
( S1 t P" i9 E% g" j我的問題如下:
+ c) y9 v7 i$ B7 P2 T0 S1 j8 Z/ M8 _* G/ n
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?; l4 y+ }; j1 H1 q" Z
我目前想到的寫法如下:6 Y9 S4 I3 u- Q$ A3 p
(a)如果Machine1是搬運起點,放在Generator裡的Method
! o* b& N4 Q5 P" H7 Z" [: |is2 d/ k9 U7 c0 J
do
$ u( \7 s0 A n2 S# z( H$ N$ R' hif Machine1.occupied and transporter.empty then" o$ X- P9 L* B6 z, v* K
if Machine1.out=1 then
b6 e- t3 ?# M* j$ h7 ? transporter.stop;! M% K6 o& d. G3 g: r7 O; d2 o) G; f
wait 30;( o- A7 E1 P h, x6 }3 N4 N
Machine1.cont.move(transporter);' d1 F+ @+ P: x
transporter.destination:=Machine56;) Q. b0 _, g0 D! U
Machine1.out:= Machine1.out+1;. R$ f0 M* B' C- n
transporter.continue;
1 f# p9 R/ I5 a- `$ j& L3 {2 R elseif Machine1.out=2 then4 k5 C! C, Z q2 j+ m$ J5 I6 f
transporter.stop;
3 v! M1 p- O! v8 V4 l2 ^! e$ X wait 30;
" ^0 \( s3 }# V- Q- ]: H Machine1.cont.move(transporter);
$ k- l- p R- H; b/ b transporter.destination:=Machine76;8 ?$ i4 q9 g# L& g
Machine1.out:= Machine1.out+1;/ y5 J1 Y) N- n4 g: }5 C# ]" x
transporter.continue;/ M+ M* O) }3 }4 k
end;
$ Y* }. A) M7 r0 S/ h! v7 Q- E) kend;
3 K, l6 i( G0 M) C" ^: j" Q+ ~9 Dend;
% d) Q% n8 B; _! R/ F( A: Z
; Z$ T* @) q0 Y6 u3 J) B$ D9 C" s5 h# h" a g
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
: H* s$ \( t5 Cis3 N) S l% [6 J
do
6 ^4 Z( J r, B; Q {- N( q$ e3 Qif transporter.occupied and transporter.destination= Machine1 then# ]2 [& t, I7 B7 K$ g
transporter.stop;3 m; } N9 ]! ?/ {
wait 30;+ j! B9 |1 q7 e3 e7 P2 S# W# O
transporter.cont.move(Machine1);+ V5 B; z6 J! b6 Y
transporter.destination:=VOID;
1 p3 u' }* j% F; \# e Machine1.put:= Machine1.put+1;
' Z0 C" A" c0 l transporter.continue;
/ x% d" S2 t) D% J1 M- pend;9 f! j0 p& h: T- {9 ` G1 Z
6 b! n" T0 x7 F5 S, |6 D2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
- t8 T8 Z+ b# y+ m2 l6 u8 _+ s7 w! q$ t" _- Z8 \3 `# C
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
0 q. O% q2 J) Z* R- X: {* A) [$ R5 [8 \/ Q" I+ t; U
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
% h; K: u& t- x/ i0 C2 v" y* ^1 k! a, i* z! j! O+ F
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
8 K- a+ |7 x- C0 f0 b5 ^1 q
* U8 E1 n8 V X# e1 [ C
4 Q& f, C0 d' x7 A' u2 ~3 y! e* r6 B7 g* I* t
& u6 P7 p u$ M W5 s, H9 x以上麻煩各位為我解答了,非常感謝!!!!!
6 ]; a4 c; w4 P# f/ e f/ V1 l6 w
& a' m- V- R+ q0 s( O6 R5 k: A# s1 V
9 o+ P* A3 I' }) \4 s6 B% \
# k O$ _& J7 x, W5 ^3 J5 _ |
|