|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
- L! e2 c( K; ^3 ]& |( o
3 W6 ^1 j6 ^# u% w( J各位前輩好4 H6 d& H U, Q" f2 a [
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。! ~0 u6 r( y' J7 ]. A
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。8 o% V H/ k# R; ?- Z
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
6 v. O1 A/ ~% D f& J, D% p我的問題如下:
2 O( ?. p+ [# ?6 M8 {, q9 J) N
- K, d" q8 Q, ?1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
0 j: Q1 A$ H, I" }0 x我目前想到的寫法如下:5 g8 H0 z. i7 M( J
(a)如果Machine1是搬運起點,放在Generator裡的Method
7 f% u9 {% {$ X: z% K, kis1 F; X0 m5 h) z0 n5 W" n
do, a5 q1 Q6 {& Z+ S$ ?% E
if Machine1.occupied and transporter.empty then' F! C9 P4 S1 E/ ?& ~
if Machine1.out=1 then
0 r- r8 }6 q7 Y& }# X6 b transporter.stop;" a% l2 }5 }# o, i
wait 30;
6 O% @" U6 @: X2 e+ K) C1 P Machine1.cont.move(transporter);
: \* ^ y. E' ^1 o* Y# {# q transporter.destination:=Machine56;2 c* B- j+ C, V1 J! _9 t7 k
Machine1.out:= Machine1.out+1;
" u0 P: B5 J! G" m2 l/ I' ~( ?9 Z transporter.continue;1 P! E4 F3 Y, K" c1 `
elseif Machine1.out=2 then: f& H" w9 u" a. a5 e& B7 g! ~2 r
transporter.stop;
9 P! U( S. B9 {3 @& Y5 X" x wait 30;
; k7 d' C" V9 \3 |& M Machine1.cont.move(transporter);) O3 V9 S- U: \ u6 ]- ?2 K
transporter.destination:=Machine76;
# z) B' V0 u6 V' x9 R3 [ Machine1.out:= Machine1.out+1;
7 V3 c8 f) b8 |$ p transporter.continue;, ]$ f" M+ P! c/ r
end;' H. T& j, a+ x) B! D4 M1 M; M( `
end;
/ @4 b2 _8 S$ V: V" P; u9 Xend;# j" q& C) s8 U
! F: U; i8 b; f8 d
, |& l6 a6 A3 v1 n* B* v(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method% d) }3 t; f4 f7 G
is
5 f8 b, @ }: X% j8 [7 e) bdo; T A$ ?( g: s# _% E
if transporter.occupied and transporter.destination= Machine1 then
5 R- z [) V Q" w; ^. h7 t transporter.stop;* O6 N6 H d' V/ x$ b
wait 30;
e5 f( B5 `9 L- G( u2 f8 s ` transporter.cont.move(Machine1);
; F8 R3 E# ?0 b9 `( K& e' U transporter.destination:=VOID;
2 \/ s Q% c% Y# N Machine1.put:= Machine1.put+1;( }1 }' d1 w: U5 U
transporter.continue;
0 h$ W3 E% h+ Y6 ], M* [; Pend;7 K) f! Z. \' Q, m" T6 A- g# n
4 w8 @% k! s) q8 y+ H) F* G2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
7 E6 @9 C+ J6 [- U: f) i4 |9 m( B1 J( i/ C; L- A% `
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
9 D* s! ^) w# d, c) z( \
5 F$ z/ W. u/ R7 C+ X 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?7 P6 e" L) T# c- [
1 n# v- ^) i" U3 [, w2 p2 o* j3 i5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?/ G+ {% G2 x I1 P2 i7 u p
4 `9 q% h% r$ i, }. L: |
+ g, q/ l( p8 B% `/ p
: f5 S Q7 ~" o7 Y) G6 l5 {( i& a" X+ ?, ` J
以上麻煩各位為我解答了,非常感謝!!!!!
+ s: g+ i8 f& ?) }
' R1 z- \: t1 p# G, n
3 v. S, q! g z# }
+ m. M/ G# }8 M" [0 Q/ J0 Y3 A2 S& K, Z$ W: ]8 p, r% ]
|
|