|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
- \# ~# f M& H) o
5 E3 f; F, O) k7 ^. ?8 M各位前輩好8 C0 `8 {* c% x% i2 X% m
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。- @. K# W+ ` N: B- h
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。/ m% M- Y7 s. H$ `# U$ }$ |9 r
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。7 Y1 }# ]3 {# h
我的問題如下:
9 W' D! Q& D( _
3 O: U: h; w7 T8 ]3 m& Q; [! ^1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
/ o* ~. C$ C7 @" F# V" Q( o. H5 p( R我目前想到的寫法如下:
" Z: k* X/ J1 _9 _8 N0 a(a)如果Machine1是搬運起點,放在Generator裡的Method
. c9 B1 f+ |' X2 A- ?3 M( Kis
% Y5 P# A% N7 f" M. H6 S1 K& Sdo3 S9 R- f! `$ p% ?# p
if Machine1.occupied and transporter.empty then
6 }* d9 _6 p* ]9 U- Y, t2 ~ if Machine1.out=1 then
1 w3 P+ T8 A4 E( s) ~ transporter.stop;+ B/ l) Y* h9 I8 w4 d
wait 30;
' q+ r3 |1 z2 n1 Q: y% \1 Y Machine1.cont.move(transporter);
R/ v! Z( S, e* H9 S# M- @( u transporter.destination:=Machine56; q* Y7 [6 a: |$ f' J$ \- b. H
Machine1.out:= Machine1.out+1;
9 E6 @7 x8 u# s4 i+ W/ Q transporter.continue;
4 |3 `& P: P" G, T) a elseif Machine1.out=2 then
0 U W: |2 T7 f transporter.stop;, c' W2 o7 n* b! p4 U4 j
wait 30;# Z! Y4 K+ x4 l5 K( j+ H6 Q& Z
Machine1.cont.move(transporter);3 r4 |7 g6 K' v/ F J: L" D
transporter.destination:=Machine76;6 w+ i( ]. v/ e2 i, x
Machine1.out:= Machine1.out+1;
( s: L' I& ]0 T2 O0 g/ d" F- c transporter.continue;0 U2 `# i( w; M
end;* J3 V' X, J f9 I
end;) U6 F: F- J% R5 }
end;
' ^% ~ {3 R; k8 w) g4 W& ^, h0 r, H, L( Y) d
* G' e" o% @" I2 A; Y) Y! G(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method: _$ O$ {$ C! P& g2 \& j, d+ k+ k6 M
is
g9 x5 P2 s' d( I3 wdo. @8 A. \- \& o9 a+ P
if transporter.occupied and transporter.destination= Machine1 then
) t! C Y0 s$ G: U2 l$ \6 | transporter.stop;3 `3 L7 W( r" `) [( Q% M4 I
wait 30;5 y8 A( I7 J5 Q* S% C" @
transporter.cont.move(Machine1);/ ~/ q" E/ e' {! U5 I4 O) y
transporter.destination:=VOID;* g6 ^" B" a D5 M1 u" A
Machine1.put:= Machine1.put+1;
s7 c( x9 X# ~) s" W! _* _# l transporter.continue;
$ e1 s" c( u9 ?; A8 ^8 t. ^end;
5 n, ^6 Z7 n' w5 t" O$ o5 o7 s8 e G( u
, y7 g2 C8 u* {4 k& r, e, m' }2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?- N: Z# L& q, p! j2 D; d3 K
% u' c. S, w/ ]% K% O3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?0 u1 ]* a% ]; g2 w" x; c
9 v3 D8 ^1 ^* j" I' |" ]3 L
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
* n/ y5 C. B$ Y0 K( h: I8 p
& U* O, N$ s2 H5 o1 b/ p5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?) x8 @6 v$ ]7 D/ {# {0 o0 t
* w5 f* T9 {3 J" E5 Q( i' ]2 I* b5 N7 J2 H, U9 s
% B' G* h0 j9 F
' {7 a8 Z: n- e) T( V& O
以上麻煩各位為我解答了,非常感謝!!!!!
- [" L, Y- u1 u0 G
& Q% A/ ^) ^- s6 z& s7 U' d' b/ }5 O5 D- s6 t
- R) Z j5 q- ?- g4 Q! I7 t) l' a' U! b6 m( W, {; u
|
|