|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
; p& Z% N2 I( J8 d; S2 e/ ?. r
' }- Z& ^& T# v) [各位前輩好
( ^- A- E2 `9 d$ N& t. Q9 F& v我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
7 w8 i3 A: B9 g& g$ U/ A我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。- Y+ o5 `, B" k' R& y$ H. t+ A
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。0 h& v8 q% t9 l; ~ w: v* C
我的問題如下:/ H* n8 Y: h: I
& e& W( u% z0 [7 Z0 a1 |3 L" l1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?6 y" Z, o5 W" e7 \2 |1 P7 U
我目前想到的寫法如下:3 P1 d9 |$ C! @3 ^$ H: X
(a)如果Machine1是搬運起點,放在Generator裡的Method2 S" f2 p1 Q4 l- G: O
is
! O; G$ g- ~- }" \0 V7 zdo
: D9 s; d3 i- Z1 E9 x- O! uif Machine1.occupied and transporter.empty then
# {1 P1 @: O5 R* u if Machine1.out=1 then& f1 P ^) K- o) k8 p) \& L K
transporter.stop;
+ w5 ]& c6 `9 {/ M3 i wait 30;
8 w5 K, B: E0 ?% l3 Q- |6 e' p( t Machine1.cont.move(transporter);
: c6 }2 g: V" ]0 w! a( g8 T transporter.destination:=Machine56;* ~4 |7 c% L$ t2 T8 U/ o
Machine1.out:= Machine1.out+1;
% d7 o+ o( d+ ~0 P1 n/ v% U transporter.continue;- {4 `5 G7 J3 f7 x7 e# P* U
elseif Machine1.out=2 then: p6 o, j/ `/ |. r/ `
transporter.stop;
: W, e7 E4 P+ B3 V9 E" ]8 D9 Q- `- z wait 30;7 z1 A: l, }! l
Machine1.cont.move(transporter);, N2 a! T3 o3 G2 |% x
transporter.destination:=Machine76;
% z, w; Y8 y d- J D Machine1.out:= Machine1.out+1;7 r" R, M4 k8 R3 Q5 r( }% C
transporter.continue;
, B: f) n8 B' {( Q6 Pend;1 ^0 `5 c4 ?2 j- n4 y3 G) {
end;: Q/ V9 [; [& @9 s6 o, v$ U& o; y
end;$ k9 X4 I% @+ U5 g( Y' K
- z( @3 ?5 _( d' m& [, [' k0 v
# Z& x( m% W) {' h" y(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
8 ?; |* W8 e5 c4 H- T$ W( g8 uis
" S- s9 B, a; }8 B3 } K% Ndo' o* e9 L! R+ R; A3 |
if transporter.occupied and transporter.destination= Machine1 then
b1 W3 D3 D4 I! M( v( a( ~$ z transporter.stop; Q, E6 A0 h, o; m
wait 30;: A% j/ q- M9 q! O4 I
transporter.cont.move(Machine1);
K, L1 ^( n2 L2 m) F transporter.destination:=VOID;, w8 u1 d. B# s' P6 P' g7 x4 Y8 D Y
Machine1.put:= Machine1.put+1;# O8 n4 P8 v) v8 t! m. C1 O
transporter.continue;
' k8 s1 j' E" `/ }' c6 e" P+ Rend;
! ]* n5 {( h M& j m
3 \5 B5 Z. d" ]: [- t$ b2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?1 `& L7 ~1 G4 g o
4 T. g8 U- T! M, n" s3 _
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
9 O9 q3 @; {+ U& N, C; Z
, Z: v, D) f- _; y" o$ U 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢? w, P) J8 m+ e4 e, K
) L6 O' h$ c/ Z9 W( e( a: w B
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
8 R& U2 U+ T% g0 d i5 f% n
- d* B: G0 z8 x. Z# A: e! t
( X" @" l2 W7 t/ O& ]8 {- n. K
% i) d! v+ ?$ R# |; y3 L! B
0 _" W. K. i. g, |/ w以上麻煩各位為我解答了,非常感謝!!!!!
' K6 ] J$ ~) r* |( m* U. \0 N. v4 j- W+ P
' a3 L* c) R, r) ^/ K
* ?+ Y# {! g. N( y" y" Y L
2 w' b0 `( t6 a# D |
|