|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 ' N1 S# x3 ?7 s& \% G5 e7 @
7 i. s. ^# k' w: e
各位前輩好% u L3 R- E4 |0 r& G& t. J6 m
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。4 _6 B0 d& k1 E0 i5 w0 ], d. @
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。3 Z; P f$ Q x4 U$ F* ~$ I' X
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。) k* a# @2 `% i+ k% [3 ~8 \) t$ T
我的問題如下:
' w& A- ?9 z1 s* ]) w2 X( c% D9 @% V+ B7 N% A# B
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
: w A& z5 p( Q( l P9 F% e我目前想到的寫法如下:
0 g5 P# N; F2 h! Z# t(a)如果Machine1是搬運起點,放在Generator裡的Method
2 S$ A g5 ?8 }% y+ l/ d b( G7 Q5 Gis
1 G+ f; o U$ m- Ydo- v6 ~6 i, Y! m, |
if Machine1.occupied and transporter.empty then
! C9 {1 b! l. O if Machine1.out=1 then9 |, z6 G8 W. I
transporter.stop;. Y- ~4 x( T. m- ^" s/ ?; R; h& w
wait 30;
& [' D `& u) X3 S Machine1.cont.move(transporter);
. c P6 ^ k& L transporter.destination:=Machine56;' V& P: ]0 A- n B8 j9 a7 `( k
Machine1.out:= Machine1.out+1;2 d. m( q+ @% o5 T& N# z- z
transporter.continue;
" H/ E6 k- h8 U4 q1 A elseif Machine1.out=2 then
3 t. _$ k1 @- p transporter.stop;2 x& ~, ~3 k2 `
wait 30; p% | Y- A9 ?5 L
Machine1.cont.move(transporter);
9 X8 N) D% ]" V U7 V transporter.destination:=Machine76;4 l: l1 Y4 l2 P4 ]/ z
Machine1.out:= Machine1.out+1;
- Y3 R" b3 |! I. _- x8 K transporter.continue;
) I. r2 G# j3 X, lend;3 D( p0 C S9 m+ w* x
end;+ {( o% P5 |) ]3 }0 p& f7 y
end;
$ x* v% S/ T. w4 {1 d7 _8 r
4 x. j6 ~8 s7 O' }$ S% n" \. S- L0 \4 O) a
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method1 j: g( T/ T! |# u& ~0 ~
is/ t( Q, y7 v: @/ O L9 T
do6 P* g. Z" L0 n6 f, J G
if transporter.occupied and transporter.destination= Machine1 then" l0 B5 p0 H! }) D- R# n2 m$ o9 a
transporter.stop;7 z/ M! d" |" d( w/ M' A
wait 30;8 h+ v: {& S8 P4 I% @' A2 ^+ W9 \
transporter.cont.move(Machine1);
1 `; C# m# x5 P6 O3 e transporter.destination:=VOID;
: b, B5 }# g+ t7 r; l Machine1.put:= Machine1.put+1;/ C1 n7 j: T" D
transporter.continue;
" }$ t( A _' [/ P2 @9 P3 Oend;
; a! t- P# ^0 J
+ p3 ~7 k1 [5 v; K7 v* J2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
' u" ^& O8 Q1 m
x. z4 l# n2 W) o8 G- v3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?, g }% c( t: x8 p2 X
! j# A) F8 X2 h+ b% X4 r 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?% ?: o; ?. R4 L% u; }+ _
6 z+ i! \% a& e0 J5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?, {, O6 Q) M5 P# A) k. B% F' c1 T
0 y. F7 ~# g9 s$ |
1 E) m* D1 ?1 a- N$ a* u
. o7 }* @% R+ s7 m3 y! }$ g. ?! N7 e
5 Q2 `3 ]& R+ v& Y- {+ v- F以上麻煩各位為我解答了,非常感謝!!!!!
- `0 w# p" h, t, j" p+ o# o1 j: t$ F. r6 o+ {5 n- u- H% J
9 q1 O3 ^3 R" L& }, [- {! X0 a# d: }6 t7 v( u# R$ i4 d! g0 ?
( w9 m& O. W$ q- S( h |
|