|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 ) g7 T5 ^' p, [6 @+ l
1 o4 g8 R7 u5 L* q9 C. e5 v) X% y: d
各位前輩好
, `# t) I+ h5 q我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
/ W9 ^; d( m% i我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。4 Y: w8 T2 ]4 s2 R: P) R& l
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
3 |5 i' I3 P- ]; X! g4 `8 D我的問題如下:
0 j% a r$ f4 L5 c
% c* W; b7 d' L* z, U, T1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
: I6 j! j0 C9 a# s) q, R0 ~" V! s我目前想到的寫法如下:
7 y/ k) S: u6 B0 ?(a)如果Machine1是搬運起點,放在Generator裡的Method; I; I4 h5 l& M
is% r0 \9 E& C) C( l, f; _! g
do2 |9 w& C, F8 O
if Machine1.occupied and transporter.empty then Y$ Y6 V& @$ q' e* o
if Machine1.out=1 then U) @7 ^$ w8 z3 Z: S& \+ _+ p0 i0 T8 P5 H
transporter.stop;
$ `* S1 u' D9 u& T wait 30;
: J! p* v* `; @+ w/ ^$ P3 Q Machine1.cont.move(transporter);
( N1 T3 F V* s% w$ f- x5 u3 F transporter.destination:=Machine56;
8 e) P8 g* ?0 L; N; r0 W1 _ Machine1.out:= Machine1.out+1;
9 D% b/ M7 N4 O$ f3 N( c( C7 y transporter.continue;
) I; k; L! D5 v# n- p# [* m2 _ elseif Machine1.out=2 then7 U* j9 [& I; _0 F$ t1 H. H/ B# H
transporter.stop;
" h+ ?$ S2 @2 g. C$ o# v( B% k7 r* M wait 30;& c J. S% L" ~
Machine1.cont.move(transporter);. J- M, B7 W% O% n7 G6 P
transporter.destination:=Machine76;. u( j, l5 U3 G! [7 T, H
Machine1.out:= Machine1.out+1;/ [: k- t7 z( H) ?
transporter.continue;
( ^; Y3 z$ A( send;3 y4 \& X& c3 T# F- j
end;
3 s; D" U9 @) E- c- qend;" J" g% R6 m% E- U1 K* b
- s+ C: V# N+ b( M) U. @0 w5 T# X# S9 n* B* |5 u
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method% m' |9 K' s% `7 Y5 Q ~7 T
is* l; r' @# P, H5 [
do1 X2 S! S' r' C
if transporter.occupied and transporter.destination= Machine1 then# \- Q, x% i+ T& A0 c
transporter.stop;
+ w2 o! U" I. u! m% d0 d! F wait 30;# F. k$ D8 P5 U! q! j; Z. q
transporter.cont.move(Machine1);0 }: M: u6 d0 L) }
transporter.destination:=VOID;6 z0 x; k7 ] |; U% m7 Y2 L7 R
Machine1.put:= Machine1.put+1;
5 L! H( v: D4 ` transporter.continue;0 c5 m9 \2 W& `( u0 B# m. E
end;
% @0 v3 g) p5 ]& E1 m" C) I8 R" [7 l, ?
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
1 X W1 U: Q9 j% z* b/ g( X# j, j4 t* z L" y3 p
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?& J0 h; M& ^2 b* U: W
8 p2 [* p# w4 ~$ d; \ 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
R% d; M/ Q9 E3 `* B) m0 c& h6 J8 w6 g6 @; [* Y
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?2 q$ e! W) U P
% M& S8 m' D/ ~& [$ I% L
, ]. J# E/ |! P: o" c
! }) q$ }$ q% L( w+ d8 S* l7 S1 M1 Q
以上麻煩各位為我解答了,非常感謝!!!!!
+ P3 O" V* r. D6 m5 F4 q3 D
3 K" O. @, M1 C2 R8 z" l' `" e, ^4 [' q+ k' `
1 E: c6 G! y: }' C
V) ]4 t, D& ]2 k! g |
|