|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
0 W3 l, e, {: b/ N+ F k" M5 M/ L
; Q/ U$ `# D( X" a& _各位前輩好( W+ u( q: L2 [2 D& G
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。! N% H3 {! H- L/ Y* O( }
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
8 k5 y& I1 w6 y9 w3 Y4 A我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
3 @$ l5 y/ ]1 A: P$ p" S我的問題如下:7 i% u1 M4 q' c8 `6 R0 G- w& F
6 b: M& A8 O& O3 z# i+ g$ r+ L) l
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢? E* J" Z0 B g1 Y
我目前想到的寫法如下:
$ V8 e( a: E, f(a)如果Machine1是搬運起點,放在Generator裡的Method. @; c% z( y4 H2 T( F; {
is
2 n) D" i, ^) T5 @$ o; Qdo
% G0 ]0 Z; U; ^6 vif Machine1.occupied and transporter.empty then
& t$ Z' f- n; y: Q if Machine1.out=1 then y: O+ N) W) V! j; @8 k
transporter.stop;4 d3 Q, `( f+ O! A: _2 K
wait 30;
3 I o2 J5 A7 G: ? Machine1.cont.move(transporter);
: [# E- _: Z& ^$ D6 p5 E8 ~ transporter.destination:=Machine56;0 N4 }* Q, `& ^ C Z' T
Machine1.out:= Machine1.out+1;
8 M# B5 m0 o; Z& h$ x3 h& v9 i transporter.continue;1 o" t/ l- a, ]9 o. u% L
elseif Machine1.out=2 then0 y! ]/ }' h3 z$ b' Z# l9 X2 L
transporter.stop;+ E6 v9 s/ s: h- q0 M% d) x
wait 30;3 M& u' _( u! `4 U4 a' n3 J* H) H6 [# A
Machine1.cont.move(transporter);8 Q, _+ ^" [5 i6 E. o6 h7 e
transporter.destination:=Machine76;3 a m: ~# C9 a) m' N) f
Machine1.out:= Machine1.out+1;
& G7 ]; ^! S2 U) V/ \; K& v transporter.continue;9 e& G' n7 h- u" ^8 W4 @
end;
# C q6 X8 |! x' y1 `end;7 C8 \3 u; x/ x, b- i0 C
end;" z2 _# q* F2 j+ Y0 j$ l4 o9 g) \
8 G* W# ~; c" _& |, G% G& Z
$ `& h# `* D, y& A(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
6 u1 y9 }& B8 W, Z) X$ b% pis
I V+ n, p: c0 B/ ydo& H+ N! ]" R% E' O
if transporter.occupied and transporter.destination= Machine1 then
, A1 Y4 j: N$ G0 S4 l transporter.stop;* J: i+ K& |8 k7 M* m
wait 30;
6 n, {0 M5 F2 v0 c4 i( J9 H transporter.cont.move(Machine1);
$ [5 N* F+ z9 ~% G transporter.destination:=VOID;0 s+ G5 g5 v% o' s- s
Machine1.put:= Machine1.put+1;9 k9 w; b. p1 x1 F5 L/ w0 k5 i
transporter.continue;, a4 [+ }0 R" ^/ Q
end;6 V: U& l3 p+ ~7 E* o9 T) u( V
# D# S- N: G2 m2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
; w$ e" [8 x% ?
& J3 ?" q2 \$ Z& E3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
M. ^ D9 U9 k" x/ l' y: p
7 u. o2 A! ~0 Q7 C0 K 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
9 @3 \, p% q4 c: h6 l8 ` s3 x2 Z4 ~: B" \4 P
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
' v6 y1 L, T) d# Q$ v2 j- q- m4 O Z& z) j; x+ m9 w8 x& G' F
# J. Y, d, j% A" J) }6 t" d: O
1 A0 h! i8 L& t4 T- q1 i, p0 V
7 M& w) w8 ~: N6 f以上麻煩各位為我解答了,非常感謝!!!!!; B4 @/ L5 Q6 Z
9 |' U- D' ?% q; R* o5 p) o$ p4 ?2 r2 `8 Z+ m# J* G
& L( |3 I) \& g7 ?3 L4 N$ L
/ G2 S# ~, b* O' p" w |
|