|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
: W0 a4 E$ J1 s4 X+ b+ ?0 J: i1 z2 y
各位前輩好
) N7 h7 u7 H% Q2 P, L, F) i我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
! y, `1 m9 g7 O4 h; d2 C我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
/ O9 U6 l- R+ {3 y" E; X, j我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。$ G: ~9 E: |, s" k' o+ ]; D$ M% m
我的問題如下:
8 k( D6 E! s6 U+ B# Q: `) g5 u
/ P% Y$ |' F- H5 Y* I; a1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?: h& G8 n6 P6 x6 ~: x6 v
我目前想到的寫法如下:
8 d, K) I* [0 W- i% z(a)如果Machine1是搬運起點,放在Generator裡的Method
% _, o- a, ^% |1 J& j, ]$ Dis
* k/ X' o( c9 |) s5 C% Ydo
& e) k4 q8 X0 K9 c, M; G* Iif Machine1.occupied and transporter.empty then$ }% g* X4 r! }+ s3 R. c' u
if Machine1.out=1 then; k* Y% [9 C/ N, E' d
transporter.stop;, y2 C* z! f: O+ g- D# U
wait 30;3 @5 |& m1 f; S0 B' i V
Machine1.cont.move(transporter);& w. D. z j2 x6 o5 @8 Z* T
transporter.destination:=Machine56;
2 d+ P. t4 Q* W' X, R/ j Machine1.out:= Machine1.out+1;
) @* ^) h4 w8 p" N$ X' k transporter.continue;. c( ~( Z* `, W' y, b
elseif Machine1.out=2 then
9 G0 S _1 H5 k- Q0 f transporter.stop;
! w) C* u5 { F+ g! Q& G b3 V wait 30;# D: L) H( C1 O+ T
Machine1.cont.move(transporter);
* I3 @" S, y3 S transporter.destination:=Machine76;7 {. Y! D% T6 H9 S/ b
Machine1.out:= Machine1.out+1;2 {& d, }5 [* v3 c
transporter.continue;6 z4 L0 o7 n. C7 Y: M% t1 R
end;
; g! I7 d: F7 lend;5 e% ~* q0 |( [7 a/ s1 h$ ~
end;
8 I( d, }9 g5 ]# \8 Z+ {; _8 z, ~ h% H n7 E. h
- F/ a7 E# F5 c% H7 L. K5 J/ Y6 p
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
9 H& N2 J6 H: X( Bis
! f! p( \, h- q' n, y. vdo
& _/ Q8 t2 b2 \& ^2 ?* O( P8 G# aif transporter.occupied and transporter.destination= Machine1 then7 ?' n& U# v. T* O9 D, u
transporter.stop;
) H' ]0 ^" v4 W; { wait 30;
" P& [2 {. G" R7 @- f2 Y$ U4 s6 u transporter.cont.move(Machine1);
- r! n5 }6 b, k, X( `* [ transporter.destination:=VOID;
+ i* _& E" t; `# p3 ~ Machine1.put:= Machine1.put+1;
7 v2 e4 {* v/ t# O$ O0 |1 Q+ {4 J transporter.continue;
/ X! M7 B% n0 H, s* U4 C5 Wend;
0 y3 [$ c+ V3 |! z+ L2 A) L3 z; r. O6 Q
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?( o) \9 Q) f# p- f
6 I# y$ n! b. j8 t4 p
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
1 W" m( N$ g0 ~7 O$ [9 I/ q$ _- C, Q
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
$ N% [: n% K( E Z
* L7 P4 s1 M9 r V8 }# T5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?. Z" Q, k# X' |/ s3 O& r; B/ o
, |3 s$ d1 W* l3 O" x5 j( F' G0 l7 d
- ~2 w e0 J! o0 L, \0 o% q
, ^/ e& v! v/ D0 Q$ N( O
. W; l9 Z( U3 I$ U以上麻煩各位為我解答了,非常感謝!!!!! F% E8 S0 q! q, S+ ~' n
+ e5 B. ? T. U3 W6 C
' \& t9 R: ~1 d% A* X/ _, m+ L1 }" v8 }6 E* d8 B/ \9 f2 v
" r$ u: d3 h& C5 U
|
|