|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 - q, v) }# ?9 [) o7 E/ v2 O
: R% c3 a" A; e }2 S8 p各位前輩好$ k4 l+ F6 D3 M- f7 ]- ]- k8 B
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
4 i) m1 q4 B( J; e# H9 p我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。, P- v t$ J# u- T5 L
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
D! y; J5 l1 z# M2 D. {$ _我的問題如下:6 @9 B$ Q o/ x# @6 h& I6 ?' I
8 z& _7 M) O0 ]9 u
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?/ F5 |6 S( e& v b! [
我目前想到的寫法如下:
! O; ]3 w; n- u" ~( ?(a)如果Machine1是搬運起點,放在Generator裡的Method
7 G+ [- A, D. [is
3 R H3 E. i& x1 k% ~: s# Kdo$ Y! I# P- S3 {1 {8 ` }" W
if Machine1.occupied and transporter.empty then
+ C6 @4 W0 c( }; _1 A* A7 V if Machine1.out=1 then
( K% J' v& K7 \9 ]) q# [ transporter.stop;
3 E* @0 E2 n; Q wait 30;
( K7 r& B& J4 e( ]& F, \ Machine1.cont.move(transporter);
; e9 p% o+ w) N1 ^& X2 M transporter.destination:=Machine56;
! R. y: y) H. |, h; {3 ~; T- { Machine1.out:= Machine1.out+1;
2 ]. C( X c+ M6 j5 U* ?! h transporter.continue;
4 n1 V6 s+ s+ O& Y' y2 c$ I+ z elseif Machine1.out=2 then
2 ~+ M5 |" k* z% X/ t transporter.stop;
# @+ E/ q! k+ C wait 30;
3 o: R5 X" }* Q$ R& t Machine1.cont.move(transporter);
& a1 E: z# `/ e% |. N: u Z transporter.destination:=Machine76;
V9 `8 }0 O1 I( ?) {, D- P Machine1.out:= Machine1.out+1;
7 |. b3 v; t! z+ X transporter.continue;2 I" L' O( U+ b1 l5 t7 _
end;5 G. _! P* X' F+ C% K! t6 |
end;
) F; m. R+ e( I/ b. d7 Cend;
% s* d2 ^# F! k% L0 w' O5 L C J" A3 b% Z
2 A1 l" h, V% u$ U' C/ d9 h
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
; |5 B# `4 L: t" q$ qis0 e: U( {; E5 S( C) s6 n
do9 h1 i: S4 Y& @5 L
if transporter.occupied and transporter.destination= Machine1 then) u2 z6 s# `( Y% T* r4 b
transporter.stop;4 _3 m, P* z. R% G
wait 30;6 q2 {: y" \7 t8 x, u
transporter.cont.move(Machine1);1 }+ f/ }# M3 l$ _
transporter.destination:=VOID;% x( {( O! k& X5 i3 ?5 @
Machine1.put:= Machine1.put+1;
( l0 D4 x7 |2 G transporter.continue; ?% Z9 I3 G `8 D6 H3 O+ Z4 Q% N
end;: ]/ w- E8 q1 L' h; C$ K7 l
; {) L6 m$ G0 R+ j5 D2 V
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?- m' }* O R5 W1 ^( ?9 U* |
" e( R5 y. Q# e( i3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?# q: K X% l$ {, F0 i, O) I
" A( q- K2 Q$ `; R4 t 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
* j& p% P5 O/ k8 ?7 W" g w7 O1 x3 W3 M z# H
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
, M! W) {7 y: l( g& l; ~6 v6 f5 m# R4 p5 |4 r
1 t( a8 }* n% L- _, }: O
0 t2 T' H: r$ J( i9 X( ?' a, q2 q- `( d, l
以上麻煩各位為我解答了,非常感謝!!!!!
8 f. G, q) f0 n# _, I# I3 ~0 f4 a& G- U' V% {2 Y: T
' z( Z5 v3 y D+ a# c
/ _3 ]( J" o( s: c/ v
7 w' X6 U0 r* |) z2 `
|
|