|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 " D! e' x& y4 f s: p
/ [% b$ t4 _- h Y( @; i: n
各位前輩好9 R. |0 w) ]* {6 a& I" i' O# Y
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。. X. h+ N8 x+ ?) {, g- L
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
" ~6 E. ]& Q" R我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
! _3 w8 y# W4 a$ B! M' u: _- j我的問題如下:
1 f8 k4 J9 v2 I: F2 t; |* i; A+ V. Y
" R6 i$ D( i! g7 ]1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
! o3 x7 B, N- w" R% O& K# J我目前想到的寫法如下:9 ~0 ~! F, M: F) Q. O+ S# D
(a)如果Machine1是搬運起點,放在Generator裡的Method" ~! w ?, }/ Q% i& x9 `
is7 B% ]0 \ u; J- h7 P- A: ?& f8 k* k! r
do1 w/ O" n" F4 {' _3 T0 B; Z+ A
if Machine1.occupied and transporter.empty then
1 @/ w' Y' @. S! K/ D2 x# t0 u if Machine1.out=1 then
( _$ {$ [( d7 a2 g1 u/ ^" A- Z transporter.stop;
: m& C5 s3 Q4 L wait 30;
0 w, m# B7 k, ~( `0 x* i# p, p: { Machine1.cont.move(transporter);0 ]8 n5 K1 B& S* M+ C
transporter.destination:=Machine56;
! g) s3 _& L m1 Y( C5 o Machine1.out:= Machine1.out+1;
, E a) \% [% D* \ transporter.continue;# i$ O! b/ c/ t9 ?2 _
elseif Machine1.out=2 then5 U0 x) R& c1 P: {
transporter.stop;
+ b8 d0 Y4 Y* {( g% E' m$ b) V wait 30;
8 h- k7 F+ G% O% c8 ? Machine1.cont.move(transporter);
% x* G3 e! X( @) D9 M" A transporter.destination:=Machine76;2 W% \( c* h. I& {6 B
Machine1.out:= Machine1.out+1;
/ W; ^7 W$ T- [ transporter.continue;* d7 B6 g7 G+ E5 x1 Q' f. `
end;
" t% Q8 X# Z; i% f' R& Bend;
9 {0 U* s( L8 `7 iend;
) ^6 [3 ?6 x! g8 R5 w7 @
& s. s3 M/ I4 t( P. v+ ?( j0 a
- K" j# h* c9 H* @# h4 C* Q(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method# h; j# o& o4 C9 N# d
is6 n/ z0 z0 N1 V5 [ D4 i* u& j
do7 }9 }8 ~; c4 i9 [. h- {7 }+ \ \3 {
if transporter.occupied and transporter.destination= Machine1 then7 \+ ^! X6 J1 n' F( O
transporter.stop;
. W' y' M/ |* w7 k3 f! D9 Z wait 30;
3 R. Z* g) Q- k$ H transporter.cont.move(Machine1);. Y0 K* J, s3 M E
transporter.destination:=VOID;8 L2 M/ A5 I: q* _% j0 c
Machine1.put:= Machine1.put+1;
3 _7 e2 W9 t7 |: W transporter.continue;
: e4 x9 {8 p' f' G, c0 x. Oend;) x0 k+ Y. a# ]. F' \
4 e* r! M. [+ J: _7 u2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?- y# h; F7 w, g! S/ D# b: _
) m2 N: t2 y$ k- v3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
! Z- | I8 s3 O( A7 `4 j
" D' m X0 j1 y8 x" Z$ \# D1 [ 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
& S3 z5 ~ O9 k" e/ `! _$ e4 U6 `8 c, @" V3 `8 Z4 U" Z
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?: v- O$ B5 d# Q3 v
* ]* k( K1 c" y1 ?/ T. f3 m; U# c
! f# T( C& \ k; U( n
) Z% ~& B& B4 z
: @. q! C9 c. Q1 R3 y; G" W9 c以上麻煩各位為我解答了,非常感謝!!!!!' Q) G8 Z! k# C4 m; m
4 p0 n# g/ s5 T" F" B2 Z6 B7 U- P' F( |/ r0 N
( e" V% [1 c( @& d3 B5 S: }; I
4 D" f4 q2 T6 {" e4 I |
|