|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 1 i$ _3 M5 r; |
( R, x+ O2 ~3 t' S0 U$ i# A9 Q" c6 p
各位前輩好
4 J7 Y7 J4 B! ]我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。; f! o" p8 E) H; ^& U7 c1 W0 f+ Q
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
7 B& D& a- p" v我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
; z" x( }1 F0 x) K我的問題如下:
% s% j: ~& T- ~% q# I: v [7 b5 y: ]7 v# j, I% `
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?0 X+ S' U! `) g5 H$ f+ y
我目前想到的寫法如下:
) H3 q- s0 m8 }) T- a(a)如果Machine1是搬運起點,放在Generator裡的Method+ s7 I5 Y5 b% j. H# W
is
) R$ ]+ @/ t! y G8 ido. V8 t/ M5 Y- G$ b# ]
if Machine1.occupied and transporter.empty then, V- ]0 k3 ?( b, Y f/ b* i
if Machine1.out=1 then
r7 s& A, A6 v- A1 z% ~* S! A transporter.stop;. M/ @3 D9 } h M# ]
wait 30;
! Z" g' h) ]3 x0 `# s& A' T: t; T `+ D Machine1.cont.move(transporter);
" X$ V- s4 `6 I) L transporter.destination:=Machine56;
* k' U' c% v- @' \ Machine1.out:= Machine1.out+1;+ c: W" o+ [/ F& ~2 V: a! z, [
transporter.continue; D. Q* T' g) M" J4 z
elseif Machine1.out=2 then
" ~% R0 K. f: U' p) z. y" P0 w transporter.stop;- H" r$ o1 l% ^4 e. l; ~+ b
wait 30;
9 u$ N F+ \4 E; `5 m3 g- e Machine1.cont.move(transporter);- _) n; t h+ J5 n1 r
transporter.destination:=Machine76;
% G3 R& X4 d5 g Machine1.out:= Machine1.out+1;- o2 D, |+ P: m2 g7 F% D
transporter.continue;+ a/ V' x9 G, D, l! L/ {$ U
end;+ X3 V5 w8 ?* ^2 F7 R
end;; H" D9 C7 C# Z9 k! c5 v+ ^* y4 E1 w
end;3 l7 V" _% ]" J/ ?
/ M- Y% Y0 K4 N1 }
5 n: V7 V! H$ ~' ]& v. E7 r" j: i
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method' |! B' l7 {$ i6 v! s# n
is
( M& \/ D$ X, y) s, \8 y4 [do
& {8 x, @6 s$ Z Mif transporter.occupied and transporter.destination= Machine1 then& u1 o6 ~5 f3 ^; {
transporter.stop;
3 d5 n, r" w8 G# Z; ]0 ~ wait 30;7 J! G5 v g- f$ v
transporter.cont.move(Machine1);
* S& u: C# u4 L9 a# _% b transporter.destination:=VOID;
& j% {- w8 L6 Z- C* Q7 ~" x4 @ Machine1.put:= Machine1.put+1;7 o& p( j! }! Z8 @* ]* E6 I
transporter.continue;9 o! U& k! {# A7 F/ ?
end;
, l5 O: ]. Z+ t ?; ], J9 G7 Z% O/ z: r) J
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
3 ^7 h3 N4 y3 E3 I: B, X# O$ D- }( ]7 A' U# ^) u) o
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?/ S h/ f% {( O& q
% E( Q9 s; x) F- @ 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
& _& c' X( |0 L
) l* m- j1 c# b! n" |6 u. n5 d5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
7 W/ ?. M$ `. o% a
3 Q% @2 [$ _1 [% v$ H0 y) ]. m8 i$ D7 s
& J3 W5 M- U0 }2 Y6 i7 e7 W" v6 s* e& V) x4 ?! _* z1 U% a
以上麻煩各位為我解答了,非常感謝!!!!!7 O# T6 [- ~. x' b+ I
/ [; Z- U. m# k
8 ^ _5 T' _7 w5 o. D
1 w: |9 o) q) Z+ X/ X& g, `
G/ I, s6 {( G( x" J9 a |
|