|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
& ?$ A7 `7 q- Z. b7 `- V0 x( o; @4 X$ A: L
各位前輩好
1 m3 v' E8 o8 j& h我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
0 B; ]$ K4 K& ~7 l: k7 t我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
3 f* p7 ~ K8 L( {我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
! l E- j/ k2 s+ B我的問題如下:
& _0 q( m6 v! m$ { Q* O7 h7 r7 D( T1 N2 _" R* [
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?% j$ M% ?! D" ?5 l" J- p
我目前想到的寫法如下: F) _, U1 X6 M8 S# R
(a)如果Machine1是搬運起點,放在Generator裡的Method
' \. i6 p& |) Z& lis* u2 @. f- I; H: O* p5 c
do9 d( B+ C4 h. O2 o- s
if Machine1.occupied and transporter.empty then# U* }, a* w% |. P' [" [1 f, K. T
if Machine1.out=1 then
% K7 z9 p6 y: b transporter.stop;
- {+ s" G" f2 a9 u2 F wait 30;
9 R- \( z( y r$ w6 H3 v5 X# R5 C Machine1.cont.move(transporter);2 p1 Z& Q# q1 r8 z2 E! M4 k+ G' C
transporter.destination:=Machine56;
$ r O# K G" `5 _/ R" r; x Machine1.out:= Machine1.out+1;
% x% o+ d/ }1 i+ \/ N7 L transporter.continue;
M. [% N2 u1 {1 i elseif Machine1.out=2 then
* {& B5 \3 [! z- q4 J% F transporter.stop;
! ?, h) C8 S% l' P wait 30;: A& h! e4 y, K( Q) N1 ]) K
Machine1.cont.move(transporter);
0 L9 q" s( e0 h4 ~& V* n transporter.destination:=Machine76;
+ W& d7 r% W5 F6 g7 c Machine1.out:= Machine1.out+1;
- z3 k3 w( ~5 E! s/ P0 D transporter.continue;
' u; ^% B- B& _) ` ?8 P2 Kend;
+ y& t9 Y8 b" g" zend;
7 X" |8 v7 b3 Y0 g$ tend;# }# C, S7 I& E& l3 Z( N7 @
$ X7 m W" w7 {8 o$ q! T( w# T5 I* g4 U. I( _5 s) s
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
1 l ?7 r. m9 T8 M5 g4 j- ~8 Dis# k- g+ F& U2 E/ D( A [
do
; N& h' s- f/ e' w6 n+ Xif transporter.occupied and transporter.destination= Machine1 then$ ?9 w0 E5 t0 x2 M
transporter.stop;2 h- G# |4 Y& K) C9 R4 j
wait 30;
+ C# D) m2 M# h& H transporter.cont.move(Machine1);7 K0 m$ W/ @8 i" p0 a" g3 f7 R
transporter.destination:=VOID;( Y# A8 s3 W& \5 i. Y7 f; v
Machine1.put:= Machine1.put+1;
Z1 L8 H1 |, ^ transporter.continue;& J4 j! I3 ^" v8 i3 Y O% r
end;
3 v1 {$ j2 a5 r. |$ l2 ]! L& ]$ r! I/ I, k1 H
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
^( O# l. b9 f! L# |9 l
! h' o9 y' X- c0 U3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
- I: V* Y# v8 M/ d, x/ d1 g+ e' A0 B; B8 H, l
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
/ r9 k. E0 L3 n& N6 b* {. E6 C5 g
8 _3 J- h {- T# j C5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?8 u k2 e, W4 R1 Z; a
, S* X( u- G6 j5 }+ T& Z- v
0 B9 Z3 }; }6 R
& F) k5 m# R+ r, }& A
?/ H( X2 L4 Q: }' @3 W0 v2 _以上麻煩各位為我解答了,非常感謝!!!!!
1 f; u6 E( \% P% i% Q/ Z5 x3 A( E0 y0 i5 F; q0 H. q% b
6 a9 x% o7 U( w: P" j' R! _6 E1 H) \
" n4 ~$ P8 v" W" y. R
|
|