|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
' |8 v. x8 m/ @ h2 {. B( G8 X
5 N2 D5 v1 u& I" g" p3 x各位前輩好
& K' u8 X, f9 }# f9 a# R, M我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。$ } s0 ?9 w* J' I/ v+ m, m8 d
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
4 |- @% ~% j6 M5 o2 _ @7 {我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。1 H( F) X1 }3 w# J
我的問題如下:
$ Y; J! j& a' R# @' V9 w e: g" w7 F- t2 e! `* n5 j6 H
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
% Y1 f7 ?" p( ~4 ~我目前想到的寫法如下:% U' }& j! V, {% ^, S5 J/ L+ }
(a)如果Machine1是搬運起點,放在Generator裡的Method$ ^4 m+ o1 |% t. J- d2 m& t
is: e3 o) p( Z+ b
do0 V+ b: \+ T# b
if Machine1.occupied and transporter.empty then
, y# I! B* V) ~; F0 z7 i+ O if Machine1.out=1 then1 d' w9 E: c6 G
transporter.stop;
/ i+ T3 ^7 a& y6 d( K& Y wait 30;# x3 u* T2 N: C; O* g6 F
Machine1.cont.move(transporter);1 v' N$ n6 @+ x7 n. e5 U2 ^6 B
transporter.destination:=Machine56;8 Z! f' g1 R( m: r; [& l8 b" ?: J
Machine1.out:= Machine1.out+1;$ }3 X7 C/ F) A5 J9 }
transporter.continue;) `5 m/ }1 r) W$ n* \/ l
elseif Machine1.out=2 then
% \) Q: ]0 Q8 c, q transporter.stop;
; {$ O' s& H6 F$ t# h: `. l9 Y wait 30;
# `# h& c: H n* U4 _ Machine1.cont.move(transporter);7 C5 \2 O# X( z
transporter.destination:=Machine76;
3 {+ e$ B) h2 B: u3 ? U- w, \3 c Machine1.out:= Machine1.out+1;
& z* @# ^, C w! z transporter.continue;
, L& z2 a3 x# V, o" T! V8 Rend;
* l$ ]) j( k' ~. \1 R g: Pend;7 {3 m" C; d( \( k$ V
end;
7 z" t- B. F/ W; p+ i( x" [4 Z. q
}7 f/ L: x- @/ t; L: u3 o5 a(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method4 f; N+ [( \* J' Z
is
4 w, `2 y/ s# A- c3 T, D) Ido. z# Q- j6 B" T3 s, ~
if transporter.occupied and transporter.destination= Machine1 then9 m& | A5 F) `1 D& p8 l" B
transporter.stop;
! s: Y, w4 y2 m! C. u) I6 i wait 30;
) X7 ?; _9 x9 |( g" |' z# ~ transporter.cont.move(Machine1);
) r+ }" X, W1 J transporter.destination:=VOID;& m' x5 T: i1 F) A
Machine1.put:= Machine1.put+1;
, J+ s3 g m4 O1 |7 @8 R$ r transporter.continue;
& K6 e1 Y$ P; H% Dend;5 W1 l! o' \9 t7 Y" b4 s# S0 K5 Q. k
7 J0 b$ x& G' H, r5 ^
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?: V e1 \- V# L$ N
1 e: y6 O# q- _3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
- A" R0 Y, R% D" E
+ d; X/ ]- v5 p0 `& K1 T 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?9 H0 J* F4 p. s
" C) [9 ^; L G+ r2 O1 ~5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?, F+ B( G) l% S/ v, r' S/ w# u
9 C6 x9 r9 q4 K7 ~7 c4 `
" O! q& n: {# j- i
! n( N3 ^% j+ I8 G
. t3 N- S" d" \, u以上麻煩各位為我解答了,非常感謝!!!!!
9 [) A1 b$ C) u" T
! d9 u, u$ x, _
# T+ ?. [; a' z7 T; q
& e5 c: U& _# {& g% L" ]4 p, I5 ^8 q0 S( @
|
|