|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
# o5 J% J( ^- N Y* u- W0 T: k8 e5 w* B% i9 W
各位前輩好
7 d! t+ T8 t& U( M. t7 s5 Y我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
- m( b% F" V7 D3 O我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
2 _# }* K6 E7 R L( z/ @我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。# j4 Y/ S: ^( V8 k4 Y
我的問題如下:
% U( w( ~) v3 X1 g3 m. J
- s+ s0 q) a6 U9 l' F( Z6 J1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?( U; a; `2 N7 }( b* V( e# ~6 Y
我目前想到的寫法如下:) o/ B5 L- N) V3 V
(a)如果Machine1是搬運起點,放在Generator裡的Method) `9 u% c/ M2 h4 m1 K5 K, d
is
1 O; J4 Z2 c: J L% N1 ddo- G5 c* t9 L$ e' ~) p5 `) i
if Machine1.occupied and transporter.empty then2 y$ l6 `) l& P0 s6 Z" u
if Machine1.out=1 then
7 h. d) B7 a0 V' b transporter.stop;
/ R4 U% V3 S' W) ]3 X) y wait 30;
* D3 {4 t* }9 W5 H% u Machine1.cont.move(transporter);2 n; Z9 r/ X7 l5 |( X q
transporter.destination:=Machine56;: s y, q0 A: Q4 B' `
Machine1.out:= Machine1.out+1;5 R8 [: X3 a3 E% G2 s {+ I! J
transporter.continue;2 Z1 z7 {. U9 \: V3 Y5 h' q7 k3 X" j7 z! R
elseif Machine1.out=2 then
6 q' L. J0 t1 s# Z8 ]# f! H transporter.stop;! r! F8 h m: j- q0 t4 D
wait 30;
8 j6 L' q- k/ i7 Y& c Machine1.cont.move(transporter);, Z0 Q3 }, X" o
transporter.destination:=Machine76;. S8 j5 G7 e. I, u. ]
Machine1.out:= Machine1.out+1;
4 _9 z2 r4 Y7 Y( E7 O transporter.continue;
4 L# l( i/ M* z$ q4 I# S2 yend;) q: N( ^" \7 d0 u) C* S
end;
; m' i3 b4 q+ P& V6 P7 ]! {end;) e, _3 K) q4 ~4 l2 U+ w. _8 V- y
" S- y5 e# ]9 S/ T( t! W
. P. s8 q7 w: e$ E9 v6 u c
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
; h5 D0 a: v, U0 @: f) f2 yis
5 Q) {: w8 F' O, Odo$ ?0 W9 w3 y$ c+ s$ O
if transporter.occupied and transporter.destination= Machine1 then
/ W6 L; H) R6 i5 n transporter.stop;
" l$ R% A0 F( j wait 30;
& p- i' U* W; ?" {: t+ u transporter.cont.move(Machine1);
9 Y) V, R+ Z7 S! M! w# P transporter.destination:=VOID;
' g, K7 S0 R# |5 u) D$ G Machine1.put:= Machine1.put+1;
. J7 h( F V- T5 |& e. K transporter.continue;
. R7 |6 E) O M) }end;
4 w8 ^+ \8 q- L3 o; {9 C( I2 l; X, j( v0 v9 s+ Z% p
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
/ J- u: D5 ^/ m) F' Q7 M2 k6 _( X7 [ X/ M' g: k5 F
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
: p6 _4 n/ Y# h" j! ^6 y6 P1 n" H r
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?' y+ U6 L' d0 l W; l/ L
6 m& r# X+ z: Z3 |) Z
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?% z3 Y8 G) a2 B: j% C! r
5 @, {2 A4 T; P
$ g6 l( J8 t6 _' l: X* }; A+ Z9 @) R0 f9 y, h9 C. d0 n y% x
1 k) z& Q. ]# U, ?) r" w
以上麻煩各位為我解答了,非常感謝!!!!!3 g$ P$ j h/ |: @! t/ V. T$ L6 A
; _# M- Z6 N' W; g4 z7 |1 M/ A/ T0 Y8 q0 ?! @! `
0 B1 z/ a" N! G) s1 }
$ v4 L; I; e" u* t/ c, T# ` |
|