|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 ' w& m9 H) e3 S. y* V
% S4 h0 o/ j6 p4 O4 v" @
各位前輩好
4 I6 Z; l0 n; U5 a/ A3 y我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。- ~. y2 M8 N1 ~3 s
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
! d+ c) N( |2 |4 _+ l4 a; u我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
5 U. _2 f- R+ f J. D) E0 V我的問題如下:
/ h/ G6 _/ \% R( e1 t
# `! L2 x: Q" T' Z$ C0 b, W% t1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
$ O1 O/ |5 v& u( i我目前想到的寫法如下:6 w" f& s A) s) K
(a)如果Machine1是搬運起點,放在Generator裡的Method8 N/ r1 I8 U4 Q1 h5 r! u8 d9 R$ r1 ^0 J
is
) U' a% p/ A/ Pdo# Z [2 P1 b% Y; B! W, I% m7 D9 _
if Machine1.occupied and transporter.empty then9 w+ W) X, I/ |; k' @& J* [) c( {
if Machine1.out=1 then
- Z6 q! ^! B' L9 C. i- j: y( ~ transporter.stop;- H( B. O1 j$ I3 S* W, q6 r6 I
wait 30;
* c2 n1 ^2 Y% O' I, R6 |/ y Machine1.cont.move(transporter);2 u1 T$ \0 c$ r% F* X
transporter.destination:=Machine56;
9 h: [$ M% p( [. u! }5 D Machine1.out:= Machine1.out+1;9 j' ]& I1 i9 R6 B. D
transporter.continue;" m/ n, X4 m. v" j" I1 ? s
elseif Machine1.out=2 then
' ~( O' I) n7 N" `2 m) ?$ C transporter.stop;
* g6 ~; F9 L3 s* i ~ wait 30;& F0 R2 Q" Y2 N" A9 M5 e I @
Machine1.cont.move(transporter);4 z6 k! {7 E# p: r; y6 i
transporter.destination:=Machine76;& |& g1 \- d) o* W, Z
Machine1.out:= Machine1.out+1;$ C9 U; A ~0 W# _( p
transporter.continue;
5 n5 _* T3 e) a! y0 }7 rend;
- k, K ]; q5 i8 o! F' n0 Bend;
6 S" G3 R4 L' N1 ]$ S; S: ?/ aend;, o# e$ O3 D" J8 z
+ I; v4 K5 x' Q
) P1 ~# U3 `7 ]; Y5 ]0 w, j
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
1 `+ J; x' Y* v( B Kis
% V/ v; E6 G& ~9 K* [do
1 K! Q4 {) c. Oif transporter.occupied and transporter.destination= Machine1 then6 H" C( B7 `( K& x
transporter.stop;: Z$ l7 M: H+ }9 s! q
wait 30;
- d7 K6 Y, c: o+ m8 x/ n transporter.cont.move(Machine1);+ C0 F1 d, ?0 s: y w: }! ?: y. R
transporter.destination:=VOID;
; }7 Q7 {) V* I* M Machine1.put:= Machine1.put+1;( I* c; I e) b& E8 P2 V. j
transporter.continue;( o0 Z, v4 k" w
end;1 C# B( m# P. u# R5 R* f4 W
% f" p: H M( \- F
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?, Q. r1 l5 Z' `; L) P+ Z
# f5 G: g; }# C7 a7 S
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?# y+ t7 H% S6 a5 V% v& }. n' K
9 k7 j/ E- B- K' o) O2 }! r3 j/ }0 F 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
9 o" l( g% t" V( r- O
3 x0 u* n, g; g6 m7 B* q- a5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?; r# R" D, n1 E' G" l/ \6 z1 ]
$ h3 u: c: x; v. S
) A# w$ S: \9 ?/ v5 p
' L9 \- h+ a8 x6 G5 Y& w
1 r ~, e* n+ D2 V$ S1 q' N+ l) F以上麻煩各位為我解答了,非常感謝!!!!!
# B. j% R, e. Q# w' i- ?& d) z6 F' I; c% A5 _
* g b, @8 _) i7 t |! Q' L$ k8 ]
m! p( z1 @( h4 _
9 {0 g* E% x, A& |& f$ p+ r |
|