|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
& e( j/ K& J( Y/ Y9 c) K$ n5 r% t0 T* E9 K# f- u" Q
各位前輩好
" l( x+ _ k0 H/ w我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。; Z* O9 { v$ J3 F9 p, ?% P. l2 l
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。6 G! i/ R: w+ @; l
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
2 }( B9 i6 T& ~. T" O5 Y2 c我的問題如下:- Y9 V! ~. u2 b" Y+ y
. v1 B+ L; ]' m+ N4 L5 `! j, o
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?. z( ] o8 }) y3 A% C
我目前想到的寫法如下:
$ b" J* U X% y% e$ m; p3 Z: D7 p(a)如果Machine1是搬運起點,放在Generator裡的Method- ?8 O* X; X2 i9 T2 g
is
/ y' F% `1 V7 w4 Y8 ^do
2 k' e* y: ^. D, A6 j! f Tif Machine1.occupied and transporter.empty then* z8 Y' D0 i0 e% ~& @: u; b
if Machine1.out=1 then
9 _8 [! L# ~% C+ o! P$ z5 k transporter.stop;
% I3 v7 ^/ o/ d# G( B1 \5 d wait 30;
) Y+ ~, ~; E& D, \ Machine1.cont.move(transporter);
& s) s$ Y3 B* `/ V( p% q3 M transporter.destination:=Machine56;
& c: n# N& E1 s0 C) ~) ^ Machine1.out:= Machine1.out+1;9 W) S* P& J3 ?9 l; c
transporter.continue;3 P# [/ i" e5 u, r
elseif Machine1.out=2 then7 X! g5 w2 |8 q
transporter.stop;
& E) ~1 w; b! W5 u# D wait 30;
- n3 |7 ~+ f7 X* G Machine1.cont.move(transporter);" |& @% L# ?. |* x/ i' r4 R
transporter.destination:=Machine76;2 t; u5 c8 r7 K% D/ f# a) s! x4 Z
Machine1.out:= Machine1.out+1;
$ q* |* I+ m% l- n- T1 s transporter.continue;/ }$ y+ b$ }' c! ~3 h5 j
end;( h+ S0 `7 w! q% f; H7 y; Z
end;
+ F( \; m) e) t5 |end;
1 [0 G6 E3 ?' n" `2 n
( L/ n# {1 `9 d1 X. l7 l; d* n1 V; f+ q: h/ j
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
: Y# A% y! J" s0 ?% z# i) n1 |7 [% Sis
3 V5 y: a" q5 u6 _( Ndo
2 Q" F) @1 J+ F, k7 ]if transporter.occupied and transporter.destination= Machine1 then
7 u9 r. S/ t2 K6 {5 |" R transporter.stop;0 b) ]/ a! `6 o H! v' l
wait 30;. U, c, C" g5 t4 Y+ M+ U( ]% D1 M0 p
transporter.cont.move(Machine1);
, P3 P0 l; c/ N- t8 C5 k8 k transporter.destination:=VOID;
* @6 `; R6 ]/ l. | Machine1.put:= Machine1.put+1;
! P8 k, l, o& U2 D transporter.continue;
$ E6 t8 I& n3 d! u! Yend;
8 f6 F( N; u7 n" t; S( {1 l. i7 w; ?& u- [; {
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?) e) o# X1 n* s
7 X" a' ~9 b" k0 \! |7 i1 ]3 X
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?* Z6 |; ^. x# t' S1 }. X) S$ [
0 G# K$ ?7 o2 y9 W/ E 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
. S: f0 S2 l/ n( B" _ ~- m. s+ r' G3 o
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?; k( l0 S6 s3 f& I
/ h, R# z5 v% T8 d, S5 }1 Z$ j F# U
6 j, d+ p) i5 `% W: S! T0 f o7 X" p1 A) N# t1 ]
以上麻煩各位為我解答了,非常感謝!!!!!
. m# |! L& q V2 b0 A [! R ~0 Y% Q) z- ^0 K' m
& U) _/ Z3 E% a; A
# A" P! v- x8 |3 o* q: \' }% Z1 D" I& w& ~6 R: j2 Z$ m
|
|