|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 , O7 u- h6 y# a3 t6 @
- ?7 ]6 C, O: Y, B! y. T8 j+ O各位前輩好( T3 _3 o+ ~" q- h
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。, n" s w# C% l
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
4 |, X- c- N" F5 R" D我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。8 ~ u1 I& U; J
我的問題如下:* q% ?& c& n* t7 I/ q5 q! W( y8 F
* o) B$ E' `( b' R( i' N& q7 ?9 A$ j
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
& C; `; i) J7 s! K$ I, ~我目前想到的寫法如下:
5 X( v8 I# `) P0 c1 R2 P(a)如果Machine1是搬運起點,放在Generator裡的Method
, i7 j- D' i; W& Bis2 J) w0 o, U' T! q4 l; u- N
do: B! o9 Y' h' S
if Machine1.occupied and transporter.empty then5 _/ @1 h" q1 }5 g. O1 S/ N
if Machine1.out=1 then2 D; T- l' @6 q9 q/ H( p: E; i! |
transporter.stop;1 U8 C. l) [4 k
wait 30;
A/ k: B3 n' a& y Machine1.cont.move(transporter);
2 S) i; G8 { D- p$ k transporter.destination:=Machine56;, s$ R. T6 W2 I: d; G
Machine1.out:= Machine1.out+1;
* h$ v6 o! `- i7 g$ T/ {5 p transporter.continue;
2 Q; [+ ]- h: [( k+ {8 W elseif Machine1.out=2 then
# V" n0 I. y! o2 H* ] transporter.stop;" q. {! N+ X' ?0 L$ _$ C
wait 30;! ^0 ]' g: Z# `0 B& K
Machine1.cont.move(transporter);
) R6 [7 z; d) M& r transporter.destination:=Machine76;+ Z3 D7 N2 e0 s1 l
Machine1.out:= Machine1.out+1;
* `1 z5 ?' K1 N- { transporter.continue;; G2 o$ z, U" Y7 F6 H- p0 }
end;
* B4 S! r5 G( o$ h/ xend;
0 O9 Q! a, o( ]5 \end;4 q; C7 V# f5 l: V4 ]/ A2 C
/ M9 U K( ?9 O
: b, J, g/ M7 R: k$ s4 V
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method8 ~9 W5 t2 R, _! \
is
$ u' G5 C2 o) Y0 D! W! Sdo) Y! {! `' i0 [, {
if transporter.occupied and transporter.destination= Machine1 then% `( F' A. \* z a: V+ ]* Y* L) L6 N' \
transporter.stop;& _% o2 r: T! X4 Z7 u
wait 30;# l# B) w! V4 l& |. N" n
transporter.cont.move(Machine1);
. U8 |% Z, u' g( [3 m+ w4 ]; q4 G transporter.destination:=VOID;
) ~+ W6 t3 N9 q/ r2 H# S$ q2 S% S Machine1.put:= Machine1.put+1;2 s5 `# s8 V; L$ q! B" Q6 L/ F7 t
transporter.continue;
% _/ |% N4 {! V& M$ Vend;
& h4 Y; a+ n0 c2 q& L. T+ r" C9 ?
: _5 t* C' {3 {% o( t* @& d! H9 }2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
1 [1 E/ ^" }: y/ t7 P! N- ~/ p) t. y+ Z2 l1 \* a9 G
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
* [% ~2 H8 d! q+ p) |
s" w& o' _' s! b. Y/ i4 X1 K 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?4 Q# V' [' E: f1 q
" w* O$ R9 ~5 T% S: J5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?) l9 v6 s9 R0 R- V2 y, s5 x
' b- K4 \1 L- d ?6 b5 b5 E- v' O3 ^" B% S7 ^9 K
| U& G( [/ G) G
, y% A5 h( N G! O4 H1 d以上麻煩各位為我解答了,非常感謝!!!!!
+ P6 O; ?) |3 p7 l( F
. r! d) ]/ \. ~; m* n
* b2 R. G F* u S8 r; G* ]2 l3 ^5 G
8 P8 Y% H- N9 u5 K+ e
|
|