|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
' `* r% x+ T5 u( `$ K, k' w3 F# [5 ^; k$ p. N5 A% ?; n
各位前輩好
. D, P1 k2 |7 R! r! c* \" o/ ~我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
; _1 Q4 U7 ~# w/ r) |我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
4 [' o$ q7 A0 g1 Q- U: H, k: O% b9 ~我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。2 O5 K/ P5 ^+ T
我的問題如下:5 ^. ?" S' C1 ?" G/ @3 B# g
* g$ ^; I0 M5 U' D! _1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
- F& F2 w; Y$ c5 h+ M p6 A9 R: v3 R我目前想到的寫法如下:- i) o$ F; ]6 v* a) ~' h) x
(a)如果Machine1是搬運起點,放在Generator裡的Method) J7 {; k4 ?+ D8 B8 b3 ], S
is7 m0 Z. }6 a( w! r" x9 ]6 s/ t
do
& l1 v2 G& @, l, iif Machine1.occupied and transporter.empty then9 _& t d' F9 |$ n& z& {1 O$ V
if Machine1.out=1 then' V" \( b0 Z* d# n+ E$ ~
transporter.stop;" {" |' c* H# O( `9 y- F4 L# R' f
wait 30;# k- I" [4 k9 U" g+ P# c2 w. ?" z
Machine1.cont.move(transporter);) v( Q- @1 p& |! s9 L
transporter.destination:=Machine56;
/ u0 ]: T3 E! ~1 P: E Machine1.out:= Machine1.out+1;
/ r8 W* Q0 ]3 I2 Q& q4 h transporter.continue;$ b. P% k$ o' S
elseif Machine1.out=2 then
; t" j- z8 T1 @! z8 m7 U( { transporter.stop;1 D6 D: E( l* S% z7 [2 P' Y
wait 30;+ Z" _3 w! i+ W y& M
Machine1.cont.move(transporter);/ V2 H& ~+ Y) r6 l; j
transporter.destination:=Machine76;
3 t" ~/ `' _0 W7 R/ Z0 R Machine1.out:= Machine1.out+1;( y- b2 a) b# w( X/ f
transporter.continue;5 z3 I! X6 s Q2 D3 c- w1 e
end;' N! l7 f% C& H8 I6 d) @) U# ~. Z
end;2 o Z) {0 G* n1 ~+ V
end;0 u0 Q" r* r& Y2 K) Y7 q
8 I1 r7 I1 L* i i& P7 K+ m0 w# }8 y9 v" M
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
`% n; i9 u N: x2 Zis& Q- g4 E k# l' V; ~" T6 s
do6 h9 j9 V) i; C, F. r& A2 {- R+ X
if transporter.occupied and transporter.destination= Machine1 then
* f5 B+ Q/ ~2 d# ^$ }/ w i transporter.stop;. E- c# g8 B: z0 o3 h
wait 30;) k0 U: W. C: b& b: Y
transporter.cont.move(Machine1);
2 w$ K* _* ~. Y0 N* C' f transporter.destination:=VOID;/ \# S4 e% I `. P
Machine1.put:= Machine1.put+1;
- ]9 k( @7 i7 l% i$ b& _% q3 d transporter.continue;
3 X) r& _% Z# |4 v! t' P a: yend;0 e# O x6 e4 x- l/ c6 S
, _, k0 m( x3 {1 c
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
, a& u, o/ z+ r* h0 q+ r) M- r6 l6 t$ U' ^. i# N: C
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
# f* X- Y! S* P4 N9 A9 {8 H, ^% U8 s0 Z/ k7 Y/ ?# J. `1 y
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?, M/ d. [6 j7 o5 i- a
6 L( y; v; s% ]$ M& s5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
/ p5 D) s4 a3 F2 C2 m9 B. _0 ^4 \ e9 ^) O X5 G- y( z; R# N
. d8 [1 K* o7 U5 d5 W: r: U
* K X2 v( {0 i
" V& l5 {% a/ F- J" m r以上麻煩各位為我解答了,非常感謝!!!!!
( Y: |) ~* J* J; F+ D+ E% t! z9 S& U$ s; F$ S
0 C1 w- m5 N7 |! o9 ~' {
; c0 L% X: e H
- ^& g3 `* ?" c3 \% V4 E |
|