|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 6 r- x) O& k; r1 B# y
8 x, y9 Z* E! V6 d5 b- d5 W" c5 o各位前輩好5 e) n4 q6 v3 t3 j2 s: o" e
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
1 @: ~8 K; k# q. G$ @% e我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。- M+ n- n8 L5 t2 z
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
c$ V" C; R$ _- ^1 p我的問題如下:+ x3 A! `" ?( P7 }- d, s
3 l- Q( a4 ?. ]: X, n! m
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢? v8 B. A6 W) f7 b6 m4 s
我目前想到的寫法如下:* d* b3 z( C1 q. L% |% u
(a)如果Machine1是搬運起點,放在Generator裡的Method* q" V3 _, ^$ ?, a7 f
is
" }' {& r5 H+ v |! l6 {$ Xdo
9 [% O- L: g7 G+ J2 V, ?* ]4 rif Machine1.occupied and transporter.empty then
e! j1 F! N. X/ W. Q if Machine1.out=1 then
0 Y3 ]( t [0 w! k5 z) R transporter.stop;
% M" X) ^2 A6 R0 u0 B' Z wait 30;+ C6 ?0 S0 n+ F Z4 w {
Machine1.cont.move(transporter);+ F6 k7 Q$ a0 J6 `- Y- g' ?
transporter.destination:=Machine56;
. I" ^7 S9 S4 `6 a- {. h9 z4 @. f P Machine1.out:= Machine1.out+1;
. h3 m0 ], N$ E. x' Y9 W! G; l transporter.continue;
% X/ J+ W& f9 m elseif Machine1.out=2 then! C6 c5 A! O! h% X0 L8 r& b
transporter.stop;
1 t: Z2 }: D$ k, V2 @8 _; _+ _ wait 30;
* e- a& w m% L* r Machine1.cont.move(transporter);
; P: B$ Q3 I6 P1 I: u% B/ V. X1 O: B transporter.destination:=Machine76;+ v" L [3 B9 r! E$ g
Machine1.out:= Machine1.out+1;
/ [. H5 `0 o" z( S/ i( U( H transporter.continue;: U, l/ B" y3 x
end;
- a, ~$ c5 y1 a. w# [% _end;5 l5 h! n& ]+ c C& o
end;" l5 x( A3 p6 \6 V
0 V- W9 d& V( P/ {
1 Y* A* N0 r, N4 E G0 k4 j2 H7 L
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method4 n0 D/ @# H8 D; Q1 P& ] b
is
+ z2 j9 {/ ]6 J8 n& a- wdo
2 `- v$ c8 p$ G3 d: G: L/ X# Iif transporter.occupied and transporter.destination= Machine1 then
) ?/ |1 U \, C5 p: U/ J transporter.stop;
6 P, Z3 f' z- n, S. k wait 30;
7 I+ q) l8 w$ U" R" D3 y! {: ?) ~% j transporter.cont.move(Machine1);. c- r5 V# S1 c2 b
transporter.destination:=VOID;$ G) n# L- A; u
Machine1.put:= Machine1.put+1;
! P5 I# o' T% e0 m transporter.continue;! D( h6 H8 {4 K$ r& I+ J
end;
' Q9 E* m# f$ q; q7 g3 H" g# v& q$ o, m1 J7 k# r
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?( N0 L( _1 G/ c+ K5 y0 @5 w1 |' {5 D
% j3 o9 [# C+ [! N, [; @
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
0 ~9 I3 |1 O4 G8 ]
6 _" ?" K0 N; y0 E3 |! j 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
0 { n+ T+ J) r% H; X# ?& g) {+ ^) S& |; c a- b- g
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
6 P) L( ]0 T9 Q/ I4 V# K& ?
7 }: \* i9 f+ u. `. f# J1 s7 m4 p3 ^9 ^! F3 [; B. c6 q! N
& D4 `" B" W+ A8 M/ g+ |& X4 E( z; d. I0 w3 ^/ k
以上麻煩各位為我解答了,非常感謝!!!!!
+ l% W# B* s6 N! U7 x! y
: ~6 b) ]; V4 s! T/ ~( C1 Y- X2 _$ c+ @
9 q* M1 O5 K: K% { ]
8 W5 B9 E0 X4 w+ R ^7 j- f [4 M
|
|