|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
: {* |0 W! x$ j" g+ y: t
. N8 q5 @ |% g1 e c+ }各位前輩好- x0 [: d4 ]. G4 I! p6 B! [
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。' n5 W5 I- B! H
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
0 P) ^' D0 V7 v我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
" y5 \4 J4 W* `: H( @0 n我的問題如下:% r4 ]/ X: F$ i" U: g' q
: b g. D9 c0 t: S, O% W1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
$ v( v9 s2 A- G我目前想到的寫法如下:
7 U. P1 P8 l% {; G) z+ M3 I; A6 V$ \% B(a)如果Machine1是搬運起點,放在Generator裡的Method
" }+ Q' Z7 k. h. r0 k' sis7 r7 T1 M* u' R; Z7 W
do
1 O2 a m8 b6 S* r6 Oif Machine1.occupied and transporter.empty then- S" H5 j7 X L. {8 O. g) C! j6 J
if Machine1.out=1 then
! a6 N+ ^; H8 X, I: M transporter.stop;( \# Q/ O! M" H2 K6 u
wait 30;- h( l, I# y* @0 g+ `! z
Machine1.cont.move(transporter);& ]" x1 p3 e, V$ } n# R! I5 X
transporter.destination:=Machine56;5 T. w- V' q+ d# |
Machine1.out:= Machine1.out+1;
- ], c+ j4 U' }- K transporter.continue;
/ E; s" N6 U, V elseif Machine1.out=2 then
; r6 @3 ^5 E7 [# O E, M transporter.stop;# k+ e; n8 l5 B4 D `
wait 30;: p6 \% _+ f, p, M& q5 E
Machine1.cont.move(transporter);
0 l: h1 h0 \8 g4 G! K! c L transporter.destination:=Machine76;% I. l% r8 r" {7 y( a! W9 {0 k1 ]
Machine1.out:= Machine1.out+1;! o$ R# A0 P6 ~, X5 b2 _
transporter.continue;
o5 G6 {5 W I! C1 M! mend;
7 c8 e. d; X: Q8 d' pend;
6 d2 N W- k& t7 k' ]2 Jend;- p( n* r Y# o
$ ]! E2 c! R) T2 I; V* _% m+ T+ R; |% z7 u
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method. ^+ X. n/ B; }% w5 f! e
is: C( \7 D v1 i( o
do6 X6 t, v4 p2 h I! n! q3 Y
if transporter.occupied and transporter.destination= Machine1 then
3 K9 ^7 L5 |, F% p+ H& h transporter.stop;
+ Y$ k5 s1 S. F- p+ ^* a wait 30;4 G( c2 ^" o( p* K2 u0 ^
transporter.cont.move(Machine1); [8 C: K% |* {6 j* }4 X* A" F, `- A
transporter.destination:=VOID;
7 X( ^8 @- |% j$ k0 T Machine1.put:= Machine1.put+1;
; R. d, C1 @- l& | transporter.continue;
$ T* C6 F* j! {5 z: m9 E3 Q/ K7 Pend;
9 ]) k6 S0 G( b4 ?, P& O+ `1 w4 \% P7 O4 ]
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?9 R; l y9 m: k8 x
2 ^# y' d* [ M1 B
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?7 s5 {! d: ]$ B
/ R* L3 C& e/ M# w
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
& ]7 q- `; n; J6 n6 k$ Y7 u- c' D& D! G% _. v; _1 v8 d! ]% c8 ?
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
7 b6 Z6 Z! s: t( b5 e9 |" K3 z( f( L# L6 q
, e5 _4 Z( `4 }; J7 \# @
+ y4 Y$ Y" V' D5 `0 m" x, I! _# o
6 s @8 B5 i3 x& U! U* Z8 k5 B, r
以上麻煩各位為我解答了,非常感謝!!!!!
d; m9 o$ X& D) `& a3 b
8 }( y7 b* E. n5 I% i# z( Y/ Z( n8 @- t* C4 \( C
3 u& ~ i$ B$ u% F. W: F; k8 Q3 a% q
|
|