|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
$ i3 Y% X: Y5 W% N3 {
! a* i( ?7 a; n# R各位前輩好
$ l5 v: O* g% A) ]! ?! f我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
! i K% o/ f. ~3 L3 ~9 q2 |/ c我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
% f5 X# a+ s, U5 y" q& b2 o# k我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。; ^- x- S8 R2 \
我的問題如下:
]- Q$ O: {/ r+ N! |' X" a I' j, F" H3 ^! A9 w% F
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?9 o5 d& o+ l: M
我目前想到的寫法如下:
( {- k% ~6 t/ u/ ~, _6 i/ v(a)如果Machine1是搬運起點,放在Generator裡的Method5 A$ }9 ^* F& i2 q# ^
is
0 t2 Y. k" @( ?( F9 jdo
6 `* Q2 W1 a3 V+ z; A2 Oif Machine1.occupied and transporter.empty then
. g/ k3 K- H% ]7 o; N9 u. \ if Machine1.out=1 then8 }5 |; ^8 c; n9 d5 U
transporter.stop;
8 S/ Y6 r) `: u! J( T }+ v wait 30;
, K& o! L; b/ S2 T7 e6 _ Machine1.cont.move(transporter);( b% H: _+ f/ r
transporter.destination:=Machine56;
# l/ N: L( B R9 G4 ?% i, N! j* C Machine1.out:= Machine1.out+1;7 d$ o! [) z$ }
transporter.continue;# h2 X' L4 |( \& S( w6 ]# ?
elseif Machine1.out=2 then
! z- j) m d- c* f( c+ d( d4 v1 k transporter.stop;! U- R8 A3 `& V1 \
wait 30;
6 q3 x" X) v7 k7 S! @ Machine1.cont.move(transporter);
+ Y& B7 }) u( Z* Y transporter.destination:=Machine76;; q: A A' F0 c" }$ }* m5 n
Machine1.out:= Machine1.out+1;/ H: Q* ?& j/ a* T0 U3 X8 b" F* n; l4 l
transporter.continue;
+ ]0 ~4 ]# E$ {8 D+ b+ v, _ s& ^end;
7 J% ]0 F# ^& C3 S: f+ h, z( Aend;
D, ]0 I: A( p- h7 ~! {end;
* x- `% b- ^" E% b3 m' H4 i
" Q/ i" f. B0 b# [) t& q. i! |
. C, F5 e/ ~2 v0 u(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
5 L% A9 A5 G5 ]- x" I: A* Ais3 z2 y, f. i$ R$ O6 f3 p* u
do
& ~# f0 \. f. k0 n! Tif transporter.occupied and transporter.destination= Machine1 then
+ B P$ ]8 X4 l4 V8 v transporter.stop;
9 k2 B! C9 ?* S( M/ A wait 30;
$ A3 U' r% u2 B: p0 i transporter.cont.move(Machine1);
% ], G+ C" E9 H, ~( q- D transporter.destination:=VOID;
# S4 j' q# u9 E; R2 B3 @ Machine1.put:= Machine1.put+1;$ E3 m4 b8 a$ w7 V% X3 v1 L' B
transporter.continue;. |8 D5 i2 |# I; a) s0 Y
end;4 t- S W) b, [) r! ^' h* Q% r, B, d
" z1 m6 x9 _* P, ~- N9 S+ S
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?6 ^% n3 Q) j$ I1 @
3 z2 E! L/ V& F$ K6 I$ j
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
; L9 R. `- V0 i0 t$ Z( x$ \& z2 T3 k" ^ ]3 d+ X2 I5 G2 ~+ T. t
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
3 {+ Q# Q$ k4 V" c* b& l$ W5 D, I& |! S, \/ g N* R
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
: W. o. ?: M) |! Z$ k+ H0 o5 k( J) `* V
( t3 a/ v" V( u1 ~4 l
8 M& S* l+ {% [
. @; K$ E/ s8 O9 N% F7 N5 g' c, x. w' C以上麻煩各位為我解答了,非常感謝!!!!!' ~: x2 Y/ \* T6 P
; T. D& n+ }! n% a! l# ~9 m! a: I. g* Z, m5 p0 k+ d/ t
) r; ]6 @4 c5 s( w; \8 S( B" X& N$ Y3 m; B- J; C" I& x
|
|