|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
' J! |/ E1 B/ o2 `4 C! f9 s$ I$ o0 r9 N! l4 K
各位前輩好/ V8 T! ?2 S- q# l% y% Q
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。/ ^! P d/ ^8 k3 z5 o
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
/ S5 s# j" `* s3 J ^: {8 E我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
4 e2 Z: X7 e9 C- y6 U我的問題如下:
' |$ Q' L* P4 F% c& e2 i
* b3 C7 R9 B7 ?; H9 l4 D5 p1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
) f4 m7 o. f0 X7 E我目前想到的寫法如下:6 W0 o( x# @" V; v
(a)如果Machine1是搬運起點,放在Generator裡的Method
2 ~5 l! G# @8 J2 `' @6 Fis
( j! x. Q1 j/ m0 P X0 b8 D. E" |do
8 K( b g( f- O6 B9 Iif Machine1.occupied and transporter.empty then
& C' ]4 `- z& T4 x) E/ A1 g if Machine1.out=1 then. b5 k. o9 W% M0 I8 k+ A2 N9 y
transporter.stop;
3 v" x0 E2 Z; w& b2 c: l" a wait 30;" Y) b0 E0 G* J- ]% G, A
Machine1.cont.move(transporter);
6 }8 N @& J$ P; A" R( {: f transporter.destination:=Machine56;
1 S5 X4 r. Y* n |) ]- K Machine1.out:= Machine1.out+1;
! j, h3 H, K0 N' X' ? transporter.continue; {; d" q1 o8 V. S; L! P2 q
elseif Machine1.out=2 then* f, }5 q; w; U* X* p7 L
transporter.stop;+ x, a1 z R4 w, U# r6 e% |
wait 30;
! d' |6 S0 v8 e+ c5 E7 S1 Z- u) w Machine1.cont.move(transporter);
! k1 D9 ? V0 Z1 e |7 l( l! @3 ~ transporter.destination:=Machine76;. Y7 Q$ A a, l6 ]" s- m" C
Machine1.out:= Machine1.out+1;4 M3 Q* c- o* |3 \5 `/ Q
transporter.continue;
7 J V* `5 {6 Y0 f" W& [% _+ _* kend;
6 h& v. W+ t \end;0 j; @: b8 D( _- Q) k% u9 }" I
end;
+ a9 I p" W2 e: c6 i e* T6 e) w; y" x! R1 ?) V! H
0 h/ N9 f2 L) Y2 m3 K2 M(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
' m3 J* a3 q6 N" P5 u. n8 sis
: l) A5 S: a* K' X/ e8 ?" C: s$ |% |7 Xdo
9 l* _) W0 O( M; V: d$ t. F( _( lif transporter.occupied and transporter.destination= Machine1 then
9 E: ?, I" E* X* c$ ? transporter.stop;1 P7 s# G' r% B$ e
wait 30;+ c) y: T' P1 j/ y8 v. X( }
transporter.cont.move(Machine1);
# v8 j2 L% D1 U3 q- k: } transporter.destination:=VOID;* z6 t7 {. o9 n, N' X; p G) e
Machine1.put:= Machine1.put+1;" c$ [0 D7 Z) y: x6 ]
transporter.continue;
9 ~! q# M. t2 C+ N( f2 Y/ \end;
. Y+ b0 Z- W1 S1 k. a( i1 k7 A3 Q; `3 M! Y+ U0 I$ [4 {
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?4 `' R8 Q! c ]3 a
- d' F& h) r9 B0 D' J4 U: g
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
: [( ]) [) \4 d8 W9 \" A. ?: @+ L0 O) C8 Q3 l
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
6 y$ z& B' i/ M: h- a; y
$ O" Y+ @$ o1 @, [5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?0 T5 y- Q3 j2 V9 y- I. S
) ?: `2 d: \4 O' b( h- Z6 s2 Y' V2 c9 L1 J3 v% P5 l
/ k0 O# j1 J: ^5 Z/ b
m# M9 t. ~& L以上麻煩各位為我解答了,非常感謝!!!!!
+ G2 v N& }# l; Y0 i' L) Y: S( ], _% |/ `0 g/ u3 ]0 `+ E; o
5 b- l; e6 \( {/ Z% e7 n) W
( w! K6 Y5 a; e/ k0 c1 b; u
0 U4 L/ o+ @9 C9 u( ` |
|