|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
# {4 W6 U+ _6 A- h* N
4 Y* M# t8 y! z$ K各位前輩好$ c' g4 V& S/ |- W3 I/ X- {; k
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。6 y# `* x/ d; O- N- ]
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
( R6 o5 @& c; F/ s) b2 T Z我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
$ V m% S8 t! {; F8 G' A我的問題如下:
* d% O- l; z* D! q$ a1 d$ R6 y* c y) N9 z) _
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?$ C. b$ l/ U- V3 `" N' q
我目前想到的寫法如下:# ~: Q6 l( G* `+ `- M3 @
(a)如果Machine1是搬運起點,放在Generator裡的Method
3 O: w& L( `( Q, ]& x0 u0 tis4 C8 |4 y+ t$ Q/ C7 `! R7 x- m
do
( c( F) v- s5 D" x$ U- y- m o" G qif Machine1.occupied and transporter.empty then
0 C" M; I- L5 X9 C if Machine1.out=1 then3 t* a- `( C) V b; K
transporter.stop;$ w6 |3 N9 @3 B- A" q2 o4 t: h
wait 30;/ [- v! Q% l; J! w1 x. U
Machine1.cont.move(transporter);5 `7 @3 ]& k7 t: p2 d% a
transporter.destination:=Machine56;
3 w6 e+ A) W; V) ~) o Machine1.out:= Machine1.out+1;
6 k: e+ ?3 [& e) D: k transporter.continue;+ y2 z; \! q, i w
elseif Machine1.out=2 then
& C/ M( B* n) K- L) z/ }) K+ Z transporter.stop;
5 U( Q4 ], G9 J" }' \ wait 30;
; Y/ ]( q* U X6 u$ V- }& \2 c! D Machine1.cont.move(transporter); s9 L& W1 |' d4 s1 T1 ]# B
transporter.destination:=Machine76;
X5 _' O& v; S, B" l Machine1.out:= Machine1.out+1;7 }2 }+ X: |8 b+ a9 q2 @! M3 O
transporter.continue;
y# f1 b4 N# n$ G5 ~) K: Bend;$ n! N! X. O' C. ~, O. B
end;) g- y% Z9 L1 x3 Z/ N( w& N
end;4 M' M9 i( h O/ v7 B8 e
; j, b g3 s6 m; E6 k
* Z9 f) u$ ^0 l' D0 z" y$ _; X- J% s
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
/ ?( ^* e/ L" E! m% gis7 d7 }* @0 w' M
do1 H% t: m$ `3 D- h6 H' p2 z# O
if transporter.occupied and transporter.destination= Machine1 then0 x0 |# T2 Z% i; e# U
transporter.stop;
. I0 n0 O3 y8 H' G; z wait 30;
( n' v0 [$ }& |+ |5 [% P! i3 e+ z transporter.cont.move(Machine1);
. Z9 L3 e L6 m transporter.destination:=VOID;
7 n3 v% a; \9 S0 ]6 z Machine1.put:= Machine1.put+1;
' d" M2 p9 K- R* \, X( e transporter.continue;
$ o+ j4 b' m/ c. H- x- @5 rend;
0 |6 H4 T$ b9 r! X! U# h; O
! Z& \9 J* U" G( ?: k; e+ O2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
# L$ R5 H0 N: n, A3 l! s; Y8 o* t0 l
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
8 |9 N+ E( ^# k' i
% y" I6 R" H- Z- L# b: P 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?% q) `( P7 ^3 m. V4 q9 k6 q9 b
' @! Q8 x# `1 G/ D' P5 B5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
/ M3 G) r. n0 c' O+ s8 a5 P6 `- l# H7 v( {6 @
1 D+ g7 |; g& B7 v2 k
0 g: H: C' G4 D, u# L! s- C
( d2 m1 K! V4 I7 D' {# U以上麻煩各位為我解答了,非常感謝!!!!!
' O" \6 o' J9 w1 A9 `# s4 v& f% r6 z- y$ [4 Y, a. k. D* a: o
! K$ e+ Q3 l$ ~# O$ p! F/ }4 I
) I- L& @' e3 S* k
: ]% h. l8 x# ? |
|