|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 3 e% ?5 K) K, ^) z. z% b
" J# d$ k0 n5 i3 U各位前輩好6 ^9 l/ V: s' X/ S" q
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
& a5 i$ [* P6 B, J( G* I1 ^我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
# s4 P% s4 d7 e( u$ U& F) i# {我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。5 i) c+ `6 |( j1 M+ J. }7 C
我的問題如下:
- I; r# ~7 V8 c9 k9 }: d; R ?: l; W) ~8 f) z0 T+ d9 b/ t
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?6 a7 J4 C# e, F; x6 w5 n& p
我目前想到的寫法如下:
* O6 x0 T1 @+ V7 _% T$ z7 s6 H% O$ g(a)如果Machine1是搬運起點,放在Generator裡的Method
( Q) u5 d4 T; {6 p" X6 m' c% f9 Tis0 W; w2 ^, H8 b5 X4 T% k7 X
do5 ^ S+ G2 }, W- C
if Machine1.occupied and transporter.empty then
/ @9 ]# d8 `/ E! v3 v" G3 ]# u8 Y2 y if Machine1.out=1 then( f& }8 I/ Y% N# _1 H) `
transporter.stop;
( Q7 Y$ w1 t- B wait 30;
, p7 h5 r8 C1 U& d! z Machine1.cont.move(transporter);
) A! S+ r$ j9 f2 V! Q transporter.destination:=Machine56;
& y; j b7 D' G Machine1.out:= Machine1.out+1;
/ I* o9 M/ h1 L4 C; P' H transporter.continue;$ M4 I9 b2 O* I" o
elseif Machine1.out=2 then; B8 S% q5 @! k$ m; L2 i
transporter.stop;
2 |: b2 b% Z- I- b& g/ w wait 30;) K) L# r, W; v3 S; ~
Machine1.cont.move(transporter);0 D4 z. `( Y$ J, F7 p) B
transporter.destination:=Machine76; p- T+ ]9 O7 {3 |
Machine1.out:= Machine1.out+1;
2 j% g$ g' ]' L$ b) I transporter.continue;" i$ b- ?, p1 V8 u
end;
$ I6 H, W# L7 Y, Aend;
' P7 r: \$ V( d8 r: d3 Cend;
# p5 [5 e! z, F% T3 s9 g/ b! K0 d! g9 x! k7 ]" x
7 O8 |8 U6 ^% W# g(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
/ o" ]( b" o: dis* P/ I, N: j2 g3 u7 X
do
; y6 w/ w# |* D( ^* h! Lif transporter.occupied and transporter.destination= Machine1 then" u1 C, Y4 B5 a3 ]0 D: l8 D9 c( k
transporter.stop;
p/ E0 ~! P. O3 r5 k: |! t wait 30;
" a: M6 p. n p3 b3 A+ h transporter.cont.move(Machine1);
, A5 m2 g7 Z5 L transporter.destination:=VOID;
' v1 j/ y1 b; V" D Machine1.put:= Machine1.put+1;# d6 v% E# [6 o' i( `3 |9 F
transporter.continue;
. j$ |5 e4 s8 ~2 u" _) w" t. H( Gend;0 U0 Z5 E! F3 I& D7 {1 D
0 t' p0 s- F1 Z& t) I1 ^2 Q3 W2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
' u4 L/ y9 J" H/ C2 K* y- f1 T5 r. F6 {! Z2 A. F
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?, z7 B2 r- Y( M# r( v: f
+ _* A! X7 O' ~' t% | {# [, w' @
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?* M- T: }2 p' }* } \2 f
9 T% w# m5 a9 f9 P" V; Z/ B1 v
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
3 ]/ M! l. C5 R n+ N5 W$ q2 m, n3 K! n1 s
5 Y2 O: _: H6 ?, Q8 s6 G" z" }, A9 O6 o! J/ {5 u' |* ^
6 @, n$ u& {/ N, ~' i以上麻煩各位為我解答了,非常感謝!!!!!
5 K- s# d& ?0 |: I( ], F' _
! c# C9 K8 U* O+ a
3 `. a2 x, \/ {9 Y) I- g e- i+ ~/ l g& r
4 F8 r' M+ K+ j% N0 D/ m |
|