|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
5 D L5 M/ g7 P( D4 X W. |& w) q/ k7 ?! M
各位前輩好4 J6 ]" m: P* A
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。, C6 o& E) x5 s( ~7 h4 C+ j; h
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
: H$ T4 S% l7 Q- c, g我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。$ r8 B* w! p S: M; X9 k
我的問題如下:
3 s4 v+ \& X" J4 r
! V4 ]) ^2 q$ r. T- T1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?* W" K$ h4 p/ m6 [- k) A3 e
我目前想到的寫法如下:
. v* I& `. d' M, Q8 Z0 J(a)如果Machine1是搬運起點,放在Generator裡的Method4 t* P1 [8 j! D- a
is& G2 y& u$ h; d; e H5 P; J x u
do% l: @: _. K# o0 M5 s
if Machine1.occupied and transporter.empty then, o+ X+ _$ Z9 l! f* h/ X# g( Q
if Machine1.out=1 then3 z" x* G- z- y
transporter.stop;
$ F# x* b* f1 Z; q: D! D wait 30;* J% K3 S- b W1 u% k1 E( p
Machine1.cont.move(transporter);
0 e2 i" ? \6 u6 ] transporter.destination:=Machine56;2 O6 i- w2 H2 O5 U( K
Machine1.out:= Machine1.out+1;
O0 y, e/ {+ K transporter.continue;$ K% k2 j4 n5 I9 {' O: b; F
elseif Machine1.out=2 then; u6 Q2 j" c1 g5 n
transporter.stop;) ?: ~ {2 e* P, h9 G s* O& `4 V
wait 30;
1 j% p( e, Y+ M& C+ D" M Machine1.cont.move(transporter);& I7 o& m5 B3 \* ]
transporter.destination:=Machine76;, r2 R5 q& A: n* L* j2 b E
Machine1.out:= Machine1.out+1;* R( d( Y0 @5 D
transporter.continue;
9 T7 w0 b! P& x& N0 dend;5 {6 j/ |" b/ x: ~; ~8 m; Y" X
end;; c7 F9 G+ I; G5 q0 Z
end;6 S! {$ w* ?7 M8 U4 ?7 A% g
1 ~3 J+ P: r$ V/ M# l3 r) z0 N
4 B' K: A; {7 \+ a(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
/ p1 y% r9 Y- y, [5 F3 e- m5 `is
1 ] @7 Z; K) ]' Kdo" D6 N) \4 S7 s" t3 C5 E6 L
if transporter.occupied and transporter.destination= Machine1 then" j V! T' V/ }, b9 d: T
transporter.stop;
# f R) }( E0 a9 ]' @, d, A wait 30;% o6 s7 `, d4 U* v5 }7 j
transporter.cont.move(Machine1);! Y: F7 O3 n9 c1 p/ p( p
transporter.destination:=VOID;
/ a$ T! i3 s3 E( K0 b Machine1.put:= Machine1.put+1;
0 o" F1 K' M1 \' M transporter.continue;
8 Y- [% f" f+ M: t% aend;
$ C3 F' ^% T h! }( {$ y
* }" q3 s3 r8 |: j& a, J* ~2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
- o6 l5 ~& ?" a3 U/ S) t2 Y1 o L6 N8 \% W% K7 F5 H9 M* @
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢? w+ |, y0 `# l& k* _2 w
+ U5 r7 F9 L V7 X3 I8 [ 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?) L5 h. R; v# z6 |/ D
9 m ?9 p& `, Q8 J7 C; g
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
7 Y f( T* P( ?, [3 m8 Y7 A% L4 u3 f( W, |& c; c2 _
e3 m3 [0 u z. |3 A- o/ d$ V! p2 H
, p' g. U0 |2 Z" r p
# l# v8 L( K- F U以上麻煩各位為我解答了,非常感謝!!!!!
( a$ ?" G. _# L+ U" F
& Y& c; I$ R3 P( w; M L) o$ \" `9 O- @5 G6 s3 F
% q) d8 ?0 E4 i' c7 s$ j+ L/ b+ c
+ ?! }7 J, X i) a6 X' D+ ? F
|
|