|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
0 k9 `8 p7 L& T4 C$ z& v2 c% b$ a$ s4 L9 C7 v# n6 D
各位前輩好+ \( k X% F! V, U5 y% s
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。3 m3 ?8 |; h* {0 t% ` p4 D7 N3 B
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。: O1 q W: q( j$ P! z% g7 Q7 J) _
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。9 r; ?" e- X* Y2 v
我的問題如下:3 }8 ?4 M) P9 B3 n, A
' ?* G% N J8 Z; D: D1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?! E) j4 n2 Z; G$ I6 m
我目前想到的寫法如下:9 Q5 M. |2 N) Y& A5 z
(a)如果Machine1是搬運起點,放在Generator裡的Method) @+ ~+ q' s& u2 F9 M/ y( C% `6 r# S F4 D
is
/ A$ f9 x+ u5 b( [do
5 s5 p( H$ k9 P! Zif Machine1.occupied and transporter.empty then# r# n, y5 K4 O3 d+ o! e
if Machine1.out=1 then9 J2 ]" ]2 ]6 T9 \0 J8 X: n
transporter.stop;
/ s- F/ M$ [" u* @- U wait 30;* x; C/ Y, y- H. p+ p; W6 N0 Q
Machine1.cont.move(transporter);
- B$ A0 p" x9 [+ t2 I transporter.destination:=Machine56;6 n, W: [) I. \* t+ _' f
Machine1.out:= Machine1.out+1;
7 c- A6 Q( ^1 b% c% K4 `3 D. l transporter.continue;: ?4 X& f# o" j0 |6 X4 ^
elseif Machine1.out=2 then$ d# C0 ~) u- H0 E3 Y; {
transporter.stop;6 u+ D% K- \2 J
wait 30;3 v8 V$ q- [5 J
Machine1.cont.move(transporter);; Z% a" a9 A( k) i g; D. U
transporter.destination:=Machine76;$ i! {5 D, G) u. p
Machine1.out:= Machine1.out+1;/ {, q; F0 ~6 P% O7 N6 p1 A
transporter.continue;2 w3 c( z8 V2 H0 |
end;9 ^- N+ x& N6 S2 q" U. b4 }% ~
end;
- W7 T5 i2 Y: f) l2 Uend;
P3 W. L V7 c8 p5 k! R4 s- I8 d; o$ S" g' t& e
h+ o. u' V: W$ F% V( L' B3 s9 B
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method5 B- Y: i+ Z' e: I* N
is! m8 O2 R8 y; c: p2 [( e
do
8 T/ p+ v% D4 L/ E" R4 Fif transporter.occupied and transporter.destination= Machine1 then! Q. O% ]) R. d1 ~1 ?3 E6 ^
transporter.stop;
+ \0 H& L% e* K8 B$ S wait 30;
7 u! q: Q! h2 C* {2 q' V2 P, F transporter.cont.move(Machine1);! A; l% |! K* L; c5 E
transporter.destination:=VOID;4 X5 ], r. b5 K) `
Machine1.put:= Machine1.put+1;
& C- s; {0 j% R/ G2 `) v( x transporter.continue;
6 R0 j" o& b* _1 uend;
8 M& A) `. s1 r: K# k. c2 s
9 U b% u' |) }2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
* l( Z0 m/ W% z# [, Y0 j) G, E7 t( g" J* A0 G
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
/ @7 A5 i( _' R& B& }
8 w# z; {1 Z& }, Q* N, |; r: W# ` 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?4 b$ t t& r8 }) r$ P2 \& K/ H
G& W; L* ^8 m7 e U0 j/ @
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
: s6 v, Z$ [; H( _6 }5 q ~# m/ \2 _4 V2 o' J. z
" e1 Q; e# m$ ^9 Z2 P" ]6 ~* B8 q0 \ |# C2 P
% ^0 \! W( e$ i. [8 l8 n
以上麻煩各位為我解答了,非常感謝!!!!!" B( N* _- q, j8 y9 N- J
' H0 i. p" J4 |3 V! h* C
7 b1 P( m# X7 \% f i6 y/ R( w+ k/ W0 m3 _' @2 z! b$ M v. F0 A! o
) F3 q, A0 J5 t, o( e |
|