|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
' i3 Y* x% `. U6 n- ^" i
$ B2 X. j; S, s# o6 e& m' ^2 H各位前輩好" v: _- W$ U5 H' Y4 p' V7 P8 A
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。3 {5 i, ], I0 P+ V
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
& U- N2 z- u4 z我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。# f2 W" A. b8 E9 A$ n: B9 b5 k
我的問題如下:. H( \ H* f3 I
6 F+ Z# g) A+ j
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
) q1 G5 [9 k8 P/ j4 C我目前想到的寫法如下:/ R+ J$ p4 z4 O1 j. n' O" M! q
(a)如果Machine1是搬運起點,放在Generator裡的Method3 ~% j3 X" a0 P+ v3 {7 e6 X/ q# x
is
) ]) @4 F; }" y7 a$ X) Ydo2 z+ M8 \. T0 @( R( }
if Machine1.occupied and transporter.empty then4 J4 e+ h/ e1 h
if Machine1.out=1 then
3 w- }$ r* x1 J/ g2 Z( x9 P transporter.stop;
" O' w9 U! |/ a* t# |0 \# Q& a, d wait 30;
$ D' D( `* c7 n5 `. n Machine1.cont.move(transporter);
# c3 u) _8 ~' _# c transporter.destination:=Machine56;: {# a9 k6 ]: X$ \, F& B7 H
Machine1.out:= Machine1.out+1;" k8 \6 ?0 Q0 |) _ X. w
transporter.continue;
0 o( w! x1 g# a$ {! ? q. j' j* r' b elseif Machine1.out=2 then
% f7 e! R" k2 [ I" K- f H% A. s transporter.stop;. c( g0 m: J/ x. M9 C
wait 30;
8 S* X6 o4 y6 @+ j3 R Machine1.cont.move(transporter);) n6 R$ z( H$ W! E# d8 ^
transporter.destination:=Machine76;6 R+ k$ X1 Q7 S" d; M
Machine1.out:= Machine1.out+1;/ P# f& t& v) m! j4 v$ ]
transporter.continue;; Y7 g* v, K+ {6 d0 S7 P6 e
end;
( `- g$ z2 L) k3 h. jend;3 b g. d/ i- \
end;! ?2 M! S- d8 _( d& F
& F% I' i, M; [, ^& e
$ }" _( Q2 c4 o
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
1 K- I! G& m! x: U* h( bis
& D. Q4 X% N7 w$ w7 d# l4 Ldo0 F% t4 F1 G' b1 n! b+ |9 j
if transporter.occupied and transporter.destination= Machine1 then
- n+ T/ p. X, o) L transporter.stop;9 _" O$ y, X0 T" e3 d; U7 x
wait 30;, q% n* w" K4 @8 Q4 M: {& F
transporter.cont.move(Machine1);* Y/ \; y; P) ?! j
transporter.destination:=VOID;
% N6 b0 O j f7 X. m5 t( V( i Machine1.put:= Machine1.put+1;5 E! ^. k% O) a1 v$ f! _
transporter.continue;
0 h6 w! x9 t cend;& O# E0 }8 [+ P1 W+ j: I, z9 \
+ E+ F! w% A {: r
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
( P/ v3 t% Y9 l( P7 X: V2 R/ m
: H" b; X j( I( g" x3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
2 n7 S4 b. N- l' g2 \# c" Q- Q7 L' V& m: ^
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
7 T: ~) l% [# x0 \
' a! ]2 P% ^) j6 b0 I$ a5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
; Q+ k3 u; y+ [$ G& ^; P# i$ {1 T/ x: S0 ` c
; x' A7 S0 n- |. P8 A. K2 b% l( w4 m& U: i7 E
5 Q: q! _$ l$ `! d- `7 ?, A( l& O: \以上麻煩各位為我解答了,非常感謝!!!!!
/ ?9 ]: ] g i ]
$ m/ p- {/ D* a( m" W2 B: _6 Z/ }" d% U) O. }1 U% {! O
j& C* ?4 w3 N
$ Q6 }& N4 J3 `1 z$ U2 I) s3 P4 f |
|