|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 - ^6 f# r- q9 N- d" l
& _5 x8 A/ o5 i
各位前輩好- N( L/ _9 c: p* G% G, t
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
" v Z5 Z: }, w6 \) }5 A$ V我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
B2 ]6 j! \- w/ P$ D9 d/ p5 o我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
: R& N0 C, I; R8 o/ i我的問題如下:' y8 l1 e2 }6 D2 x/ M6 f6 L3 L
! z+ b+ n( E2 o E7 j) n
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
/ N- k5 s( G! [9 E/ h+ }$ I" y我目前想到的寫法如下:; O/ |, o+ Y3 f# Z- G- a. F* b- i2 J
(a)如果Machine1是搬運起點,放在Generator裡的Method% |7 D( v( u& {1 i7 b
is
- t" I9 f3 j) x* Q. o7 vdo$ M' f3 s5 o4 X) K
if Machine1.occupied and transporter.empty then
' M1 l1 _& O0 t' a& P" P if Machine1.out=1 then
% [9 [( K* G/ z! k0 N transporter.stop;
* s! B" m' e2 h$ d, N wait 30;
$ T6 K6 y; C# k Machine1.cont.move(transporter);) J9 C7 C. Q: x( J
transporter.destination:=Machine56;% T/ D, L* _) ^/ ^$ x
Machine1.out:= Machine1.out+1;
; } {- d3 g, y. x- ? transporter.continue;. i. M7 `( m0 Y3 _. `8 a
elseif Machine1.out=2 then
% N8 z j& M3 n* { V transporter.stop;
# T4 K5 }) h/ g7 D* [ wait 30;* d+ |( \: j n+ }. f5 v9 v1 J7 ]
Machine1.cont.move(transporter);6 O5 V! {1 E: z
transporter.destination:=Machine76;
8 y) ^& L" f& B* h# R, Y& m& A Machine1.out:= Machine1.out+1;/ x. W, j1 M+ f9 @
transporter.continue; h/ w/ |+ P! [$ r* P. ?7 Q3 I0 s
end;7 d9 L* h; e+ d
end;; [ C7 C1 f# S- M8 ^1 |$ R
end;
$ n1 Q7 }! P) G4 }# G5 n7 ]) @ t6 N+ s, ~4 `0 k! {* h/ E
+ |( O' [, f3 P4 M9 X: |(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
& P7 U# c9 u G4 l, [9 @; s$ ris B2 i; S- I5 @% e) e
do
1 d, Z9 Q, j% D% j1 ?if transporter.occupied and transporter.destination= Machine1 then: j0 f9 u$ p+ h J
transporter.stop;# ?2 q& |6 l. c
wait 30;0 `: W8 n u0 P$ P& A5 ~6 s
transporter.cont.move(Machine1);
8 K# k! V; D- ] transporter.destination:=VOID;* G* Y# V' l% _. C9 Y% ?- E0 s+ v
Machine1.put:= Machine1.put+1;
, E( o1 M! E( J2 \7 { transporter.continue;
" Q- V0 Y" N% @; K1 d! s% Xend;/ b6 x F, O3 W9 S, ^
/ c# y4 k- z! \4 l+ O. p+ H0 @" A5 B2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?; @8 }8 R, M% F' ^3 O: U ] B
2 ?2 ?; a+ f6 T4 I# v3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?, v1 `! x* Q& C; A2 X
: J4 _5 y; \2 F, m6 x% W7 V 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?' I Q5 n2 e( x4 l
/ R" O. ^% V% f" u" s
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?- H2 ]; t2 Z2 q, }1 f
* }2 h {: x+ n
/ f5 O8 R4 O( @$ q7 b( G. e
1 {3 q) \6 ]$ |, w( E7 T) B+ [* a; x; t/ [7 S% m
以上麻煩各位為我解答了,非常感謝!!!!!
) H5 `& K$ C$ n) Y8 V9 U, }( r5 U" r; n6 E8 R& G
" p! ]6 {- J- j# @6 m
0 l1 h/ W: t- w' F/ X, `
6 F- I" N. J9 r1 G6 y% Q |
|