|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 ; ?6 \) L4 ]! l( F! @8 S
( a; Y' G$ |$ V9 \" i; O各位前輩好% P9 u* F. E& O! D
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
' w, \1 s ?; R我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。5 g( _( V& e6 E" W: O
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
w( W% s8 d- I2 P我的問題如下:5 E6 B+ n7 N2 M# r: s3 ~
, ^5 s- R2 D j! \; ?, ?9 P
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
. ]9 r5 k! J7 N, d我目前想到的寫法如下:
9 F' n- A4 s) a8 H' L0 ~(a)如果Machine1是搬運起點,放在Generator裡的Method
9 J. n, t0 t4 b0 v5 L) gis1 E+ V! ~# R( m) v9 p. a
do. M2 D# c( a7 m0 l6 c0 f: t4 E
if Machine1.occupied and transporter.empty then4 r8 e3 F- E& k& q
if Machine1.out=1 then
: R7 @8 ]$ a+ ^1 w9 N @ transporter.stop;
# z3 ?* R$ Z3 T6 c: f wait 30;
( q, n, H7 h9 }5 p* K Machine1.cont.move(transporter);- a$ K* t2 J$ q( Q0 z& ]
transporter.destination:=Machine56;% v4 a; W# V0 S/ i/ a# B! [+ D" y
Machine1.out:= Machine1.out+1;" g' M3 E* U" a( k2 S* ]% N3 u
transporter.continue;) x. n( k( U& s# W- Q* p$ l) Z# K
elseif Machine1.out=2 then# u1 g4 q2 z+ b+ s" e! O. D
transporter.stop;
& i ?+ v- J4 R9 f2 m+ P wait 30;
2 i' ] `& k K7 v Machine1.cont.move(transporter);# w# J' ?0 o: H, @) j: Y
transporter.destination:=Machine76;. j3 p! B6 d% a0 I- F* o
Machine1.out:= Machine1.out+1;
5 v! t3 ]8 s) ~* y, ]' f transporter.continue;
. [% d7 o! d+ u8 p- v; c3 b; iend;
; _" h+ K$ M% i$ c0 ?! Fend;9 w& U. l; S, e0 D
end;; [8 m% B5 h/ t. {# t" ^+ Q# c
+ X; W8 I. i0 J$ n+ c* W
# q N9 J- M' h: u! L9 H: S
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method2 @) r- P% F7 N5 c4 j0 ]) ^
is$ s- c1 o* u5 F- U: D1 U& h- Y4 j
do, T( K" d6 D- ]
if transporter.occupied and transporter.destination= Machine1 then
. k! r; x9 ]' ^# X" P T# I3 _7 m( i transporter.stop;
7 V" S6 M- F' }. C wait 30;4 f, F! U3 V+ s5 j
transporter.cont.move(Machine1);
, a4 F2 ?9 b9 N" H$ _+ x, J# [ transporter.destination:=VOID;
. v: l) n, _1 a- S; R. F, ~ Machine1.put:= Machine1.put+1;
- x4 M( K2 O6 V5 U2 d* ~4 j transporter.continue;9 P. N) {$ n- I
end;
' m% s3 j' ~( H6 U" q0 ?* [
4 Z+ c- @3 i6 ?) A+ O, z2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
* H: _; I2 l" M4 P( {# a
, ] m* \" T5 J$ k& a3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?* v, v7 H% E9 S0 i' n: l% r; c
8 q9 R: `% i$ J% F Q 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?, X% F/ N% s% F1 m B
& b3 C# u4 |( V7 e5 i# V
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?% }! ~7 U# P$ ^1 v6 [1 A
+ h/ t# X3 v2 V" z7 c- g
5 j9 B+ ]7 c8 Y; G; [& A" Y' }1 s. z
3 m5 f- Y8 u( ]以上麻煩各位為我解答了,非常感謝!!!!!
t. Q4 Q# x5 @6 M& `0 g, R7 ~: {; O2 g6 Z+ g8 x) @; Y
) ]' }# i$ {; s, A, ]! r1 C6 R5 G6 k/ c$ ?( m1 ]6 K+ O3 i5 n
6 O* N v" W/ n$ S0 l
|
|