|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 # l' S% z( n! Y: z, B
3 A" T- p$ x& s: H
各位前輩好0 w3 h# i- ]( h( K" I
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。7 g# G9 i9 ^6 B" I# J& i4 v( v
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。' E7 R! B V a: Y
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。9 y( a# a) T0 U2 v, b2 \
我的問題如下:, @8 P& N) P, J% J7 _9 @: k- A
3 I5 f0 E6 N7 m- y; P# J
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
& {: O& a- V/ U8 k# V0 o# ]我目前想到的寫法如下:
6 O: y, I4 V' b- |8 \(a)如果Machine1是搬運起點,放在Generator裡的Method
4 R2 J+ N: W& C% r, B/ O7 z, _is8 g0 V* Q5 J& d, A) [1 Q
do' C# B0 H; \0 z3 t
if Machine1.occupied and transporter.empty then
+ a1 J1 v1 z. r% j" | if Machine1.out=1 then! f3 \0 i# }4 A, Q
transporter.stop;% L: u+ ?5 z# Y- w7 V: G) _# O% Q. e2 m. K
wait 30;
8 n' n, c! ^1 F4 J; I# m) ~8 n* [' J( ? Machine1.cont.move(transporter);* k. s6 u* M9 g' ~4 h: S- `) C
transporter.destination:=Machine56;5 @' C$ m; i" V+ M% S7 p, ?
Machine1.out:= Machine1.out+1;
- Y( z9 a x$ o) R& ` transporter.continue;
. |3 E2 J* K; X' r' T elseif Machine1.out=2 then
+ C5 W& f6 e, W- z7 m# I0 O4 m transporter.stop;
8 f7 D0 `/ k. x5 q) e/ `$ U1 x wait 30;
* r2 L) t& P8 w. Y+ R4 @ Machine1.cont.move(transporter);! k& g2 [8 Z- w. p% ?
transporter.destination:=Machine76;
" \5 i) p' x1 f! v! L% \- I Machine1.out:= Machine1.out+1;7 w# m# v+ g! |+ I
transporter.continue;% }1 r+ D7 t; v
end;! {9 g/ m4 i& }6 |: _
end;% i: ]( }% j7 \
end;0 U: t T: F4 g) {4 J
+ x6 W. m' s, W5 O3 r9 y; B& o
, }& S8 s. N g: O- A
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
& g; r/ M& {2 v4 e- s3 S' I4 A8 Eis" z! v/ F/ \, V6 x* U. B' z' [, O
do0 @* a8 M3 h) n6 |0 q
if transporter.occupied and transporter.destination= Machine1 then
3 Q* {& h" E; } transporter.stop;
8 f4 ~/ f3 B" b/ j. g wait 30;% _) b8 M _ D5 G# K# h' \* f
transporter.cont.move(Machine1);
. o$ e( A% h t! S- Z transporter.destination:=VOID;# x4 m8 y# ?; @: Z: u
Machine1.put:= Machine1.put+1;
0 g" o# t. j& I transporter.continue;
5 E# t6 u4 h, f# y* M- G; T; nend;, s( r' e5 D6 J4 N1 D
; Q1 ~* K9 R' G' I1 I2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?- j( }/ w9 A Q
l3 o( u: |# e! z% I& ?+ M
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
" L" k5 u; j* s8 ^3 h: |' E+ i- ?/ N7 z
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
$ V/ V C8 r" p9 I5 E% H! K, y+ n& C9 q/ \- K
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
+ X4 v& V6 t6 x+ w* q% M
: i% |7 e7 c3 E: D
7 n$ h+ ]- l1 ~) [+ e
' x' b- _4 ?$ l" B$ C2 X1 d* k5 K+ K2 Y% u
以上麻煩各位為我解答了,非常感謝!!!!!( g- m5 l* N$ Z! E! }1 l
" N' K1 r- V% c
8 c) I' H- E4 d5 s* V& ~% T& r3 d; o" S7 J
E; v C; `. N& w6 l
|
|