|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 9 \6 A& b4 s( x. `
+ F, G- H% C: m5 q; S* D
各位前輩好
8 p# `- S8 ?7 B5 K我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
3 Z$ w- \/ o& \ e# m' @; C我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。. a+ m: x; T( T, ~$ |& s
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
/ ]# |9 l; |$ ]4 N a2 D我的問題如下:
7 }/ d5 f6 C/ @5 o" Y1 E, F0 |2 |* z/ Z. q+ T% O q
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?) x8 E9 f1 _9 {6 U3 t- T; K
我目前想到的寫法如下:& T: x4 y; a9 j; E1 ~2 e4 r' `
(a)如果Machine1是搬運起點,放在Generator裡的Method
0 x+ E6 ~" ?4 ~" H0 Bis
" P; V9 s: j( ]; Fdo
" T) d$ e$ U& P% U) R' aif Machine1.occupied and transporter.empty then
+ H7 o7 Z3 |( F) l m1 B if Machine1.out=1 then) A1 y) D' u- H* `/ s, F
transporter.stop;
$ ]6 H+ f! F3 Y/ _8 U- s7 G% p9 R wait 30;) K; R3 N2 H/ R; L) l
Machine1.cont.move(transporter);
/ m3 H9 P/ l# d9 r& t transporter.destination:=Machine56;; Q0 Y( D* q) c* p3 S# O
Machine1.out:= Machine1.out+1;; G/ \& j& D$ }( e( U: |
transporter.continue;6 |% z8 e" a& o0 U4 Z; X- Q. w
elseif Machine1.out=2 then! q- Q1 O6 A1 ?3 C9 ~& K
transporter.stop;1 p+ b. \2 }: G% }5 T) q; Q
wait 30;2 I4 v2 S, H- _) r, `
Machine1.cont.move(transporter);
1 Z6 Q; m: ]- |+ Q4 B transporter.destination:=Machine76; l, t% `' f7 u" r
Machine1.out:= Machine1.out+1;+ Q9 P7 h9 c5 p% ]6 o
transporter.continue;" h5 k" C8 |4 E1 N$ F- |
end;: y( f, T5 k8 H7 y- }* S2 Q; B# S2 O
end;% P5 g0 @" j V1 h) ?
end;7 J2 E) m. P" I! Q
4 H. N- B8 a' K, ?9 n- d
, v% J$ d% }) ?(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
2 O2 e- {. \; w5 p& b l2 `is$ H1 K2 J+ q* X) n: J: r% _
do
6 b6 q+ A) x' C/ Z3 a( X9 w+ Yif transporter.occupied and transporter.destination= Machine1 then; K, \! G7 A+ X# c! V6 k. B$ t9 c
transporter.stop;' s6 m: }! x$ G, _
wait 30;
! Z/ `. ]: Y! X& u1 k8 @2 ]! r transporter.cont.move(Machine1);) X( b, B! E7 C
transporter.destination:=VOID;
6 ]2 b+ v* }, I+ x- x Machine1.put:= Machine1.put+1;4 n/ t( d' r- Y) h6 _
transporter.continue;& p1 P6 v* r& l: u! z9 @2 k
end;
- Q- u2 @9 K5 V0 x2 I" |, c/ f3 N4 b
& n c/ J3 \ O1 c! [3 D2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
- _& B s4 k! x5 Z6 X/ L
' ?* Y$ }6 J& ]3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?! s7 n3 H0 N s9 m+ ?+ ]
& N! h( u, l7 x6 O' @" e
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
4 r- B: C$ E b( f' G" E* F R' O }) n$ C$ H3 g
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
0 j4 o. V* ~. u/ ~# e, q$ \$ R4 s$ R, s
# E; n" w# ~! z7 y
+ U" z! h+ T3 ~
2 k6 w* o1 U) [7 t, p3 y. ~/ c; C8 m
以上麻煩各位為我解答了,非常感謝!!!!!
# U1 C( L$ i/ ~* s+ {, |% E" c
2 D2 U& ]8 G8 i1 v0 b/ g& Y8 @9 W) l/ @2 ~
6 F$ q4 B! L9 w$ K! U% ^' L
4 N! t; x6 ]* y; N" n _$ H+ O, m |
|