|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 * N1 u8 j) v! s' L& V6 f
, A( J4 {5 Y. r9 x$ k4 @) k# \
各位前輩好
4 ^6 c$ x# I ?5 T我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。; W2 _' e8 ]' Z4 l3 o
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
- `' O; W& k2 M我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。9 N) W! d- }, X8 t$ Y' G3 C
我的問題如下:
$ V$ `' G6 z- X2 d3 U& a: g% g9 ]7 N! p# b4 Z- b
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
" f. {) T8 |3 r3 P我目前想到的寫法如下:3 O- [1 F0 A" h. W* J9 R
(a)如果Machine1是搬運起點,放在Generator裡的Method
6 j( G. q8 ~3 A' yis
+ j4 j+ z, J' s i5 r3 Ido. z0 O* x# b% \$ y0 ~
if Machine1.occupied and transporter.empty then
; t3 ~5 K! J( K: y' @ if Machine1.out=1 then
6 F2 [3 j5 x8 V, ~8 k4 ] transporter.stop;+ v$ g# O2 m3 x
wait 30;+ W F# L3 G1 v4 `* n/ c' B, N
Machine1.cont.move(transporter);
; m& z/ ^& {) P/ ~/ |2 U- g transporter.destination:=Machine56;
4 ^6 u" B0 i. \7 C4 r Machine1.out:= Machine1.out+1;
7 b9 ~7 ~6 T( l/ C4 V0 X transporter.continue;# l3 t( o# k/ w$ Z5 n+ E# X
elseif Machine1.out=2 then
^. A9 S; U& u; [5 l transporter.stop;
& P/ X. x* N9 U8 S3 }* x wait 30;4 M! w0 D2 z( `: ?# ~8 Q3 l4 M
Machine1.cont.move(transporter);
/ b& u H1 R2 ?8 l( } transporter.destination:=Machine76;( p& U! P# V7 q/ R
Machine1.out:= Machine1.out+1;
8 _+ O3 B" e6 x7 U7 W transporter.continue;
, ^* ]' P% B4 I8 V0 n2 ?end;. }# S% Z% k; E* w3 s1 r
end;4 p$ v9 ~8 b- k R
end;5 D5 d, o1 L; t" S$ H* e
' V( U! G8 q4 `( G
" P" |/ h/ T% W- t5 t(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
8 u) s4 b, z( X4 X% Tis
, K' p9 T S- J9 D+ cdo1 k# k! c6 `1 c$ r
if transporter.occupied and transporter.destination= Machine1 then! d5 b3 S$ o0 G6 Q2 U' W( a- |
transporter.stop;
$ E. N2 z! x. K- t& G! w2 [& o% L wait 30;
; V4 E0 `% g6 c; h% |! @ g4 i transporter.cont.move(Machine1);( T/ V0 u0 I( ~- r" v1 w; R
transporter.destination:=VOID;
$ i% X/ b+ f; t6 W9 X Machine1.put:= Machine1.put+1;
) t) f/ S: k) `; {! }# F transporter.continue;
. W& t+ r3 J6 T1 wend;, O8 F O9 Z) J
4 p" t _: [" k% P" x9 W2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
. |' Z8 E* N$ P8 A$ r( p
6 z* F" P0 N+ s3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
$ E" ]/ ^: s$ {* h7 F [9 U4 m7 `* y* y1 b) T' c$ n* g0 g1 M
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?( ~5 Y) L: ]! b$ i
) }- Q& H; K% R, O% z- z' _8 N
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
8 {) z* d K M' l! P- |4 `( @7 m" K: N
+ ` y1 S6 w) }/ i
% X3 |) H" C6 i: s0 b
* g# U6 R: `3 J) I6 n. k以上麻煩各位為我解答了,非常感謝!!!!!
0 E k" {- {; r D% c% F
6 \0 O% U$ o. E: ~* [2 c d! X, D9 j- t. p! J$ H! I
8 l3 K: c6 D# {1 F- n5 z
+ E) \6 C( L( ~7 `
|
|