|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
* k3 {- p2 _* n7 U
* a- q5 w$ y/ h各位前輩好6 i3 w9 [1 r: q
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。/ e \6 G; e7 q- M3 g a" q
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。0 }, P/ G5 s2 }2 ~' s M
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。; O. u% k, t' j1 x
我的問題如下:) f9 ]/ m X: M1 u$ E+ q; W
, I1 o5 `' R+ j$ ~) ^! X$ F1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
9 B6 g8 U$ K! H+ W$ L我目前想到的寫法如下:' Z$ O5 ^8 b* O
(a)如果Machine1是搬運起點,放在Generator裡的Method6 Q% s; ]- W f4 \* \1 s
is
1 y1 u- ]% T1 `. f& _do
# ]; J* F1 ] U' j5 K( X& v) sif Machine1.occupied and transporter.empty then5 Q; a& {0 l& A: X) ]
if Machine1.out=1 then
1 q0 W( V) t% g/ o; F. _) y transporter.stop;
' t2 x/ W. ~ s wait 30;3 ]1 X; P f8 s" n
Machine1.cont.move(transporter);* y) V0 |8 f& d: s# O
transporter.destination:=Machine56;
& K! l: p0 ], m: f Machine1.out:= Machine1.out+1;1 ], [6 e. o) x( u! d$ v. D3 _
transporter.continue;
7 m! v* ^5 k7 r6 g W4 k) g K: a0 _ elseif Machine1.out=2 then2 Z+ F$ _% e* n0 ?! @% w3 g- d
transporter.stop;
/ D- y0 l+ S$ X [! e wait 30;
6 g2 U8 t2 X( i4 ]$ @1 |, o Machine1.cont.move(transporter);
! D& n3 v V7 U transporter.destination:=Machine76;1 c8 `, I. s8 p% t
Machine1.out:= Machine1.out+1;
$ _$ x+ a2 A3 ?4 j transporter.continue;1 x5 Q$ T- ^+ _. o5 c6 E% F
end;7 L, G! z' x1 _0 M
end;
9 `. F$ H6 \2 L2 {2 D( m4 }9 ~end;
' a! {) } x2 ~8 U9 @) d1 c! M# Q; `
7 U) k! s D/ [: F L7 r% u9 S' M, O+ P, v# R3 ~
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method3 s$ B" b7 u; `6 n- s
is
% {/ k/ [: X6 v( ?0 T6 i* Ido
8 Y( ^: X0 ^* \4 o6 |. L- wif transporter.occupied and transporter.destination= Machine1 then" g9 D# {0 Q: t
transporter.stop;: l0 ^3 C) z8 o- m: ]; v8 p
wait 30;
) e/ j' J7 n. o8 D% K transporter.cont.move(Machine1);8 F; i" j- x, }! d
transporter.destination:=VOID;: A2 S- e* t) _3 f" s% O j& @2 v+ `
Machine1.put:= Machine1.put+1;
7 b0 p" e$ N$ ]( c transporter.continue;0 y( y# F0 w( A A p
end;
; V8 T# y L+ ?+ N' Z0 b+ K1 ~* U3 h
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?% Z! S2 M+ D. |% a( S
% [! P: u7 E; {0 B
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?8 F& `" R% E; x( h! Y2 ^" S$ i, M) W
$ M1 p6 _4 }4 z! M, ^3 B* L V8 ^, M 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?8 R# f& c: M! J. v* | j7 k
& V5 r) t8 B* X/ ~
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?% R4 C" w, Z% T& n4 \4 j
$ y* [5 c& c m, k+ g
( x/ J, |3 V, l V4 G/ W8 @
$ a0 T1 a( r4 e$ r- T$ w t$ Z4 A3 J% W. Y& s
以上麻煩各位為我解答了,非常感謝!!!!!% d3 w) W% T" c" P3 f1 `
% M- ~# r7 a+ L+ C( w
- R$ k2 B3 N- s- _$ a7 b. G) o3 w6 [* e* s
! {, i/ E# W7 m( c! V0 A0 N% f |
|