|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
# A% q- S/ w9 @ L8 y) @# Z4 O1 F- Z& D6 N
各位前輩好. S1 \, g% _ N/ ?. B+ N: c: [
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
/ I, U+ M; A8 ~- H& b) W% ], @我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
" @& j, h% g7 `9 g$ K9 |我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
. ^. b9 C6 m' e* \4 `7 v我的問題如下:
+ {& b: f I1 y( ]5 P2 ~# r* u! t, |' F* O0 E7 E5 G7 \7 S7 [
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
- y" M& [1 s* E+ w; Y% [2 R* Z我目前想到的寫法如下:5 [; U0 J) ^6 R8 v0 |$ P
(a)如果Machine1是搬運起點,放在Generator裡的Method: l3 P; [ a8 q# x
is
4 }5 x/ d; R. E$ j- k( wdo
0 d8 k, {& T9 M3 z! ]; [' M8 Bif Machine1.occupied and transporter.empty then0 U+ r/ i+ a: o; D
if Machine1.out=1 then f- `+ L! y# q6 I% \# b; Q e
transporter.stop;
8 f) h/ A+ x; o4 P/ T wait 30;
p. M5 F9 S6 u e% R Machine1.cont.move(transporter);
* B0 C2 V, n0 R% A2 I; P3 Z3 m transporter.destination:=Machine56;1 Z( q8 ~/ ]7 _& c2 f0 U
Machine1.out:= Machine1.out+1;8 R% y2 P9 ^* V7 t j* J: j
transporter.continue;. g$ j' p- ]4 f% ?! O
elseif Machine1.out=2 then3 B. o" V! K3 g8 l$ q( D5 Q! r
transporter.stop;& p+ n& ^1 t) Q, M0 w$ w
wait 30;9 u4 Y! {) ~* M: y0 [* S4 X' I
Machine1.cont.move(transporter);
~/ h T. K$ W2 U1 L transporter.destination:=Machine76;1 C- L3 H' V2 L& U- N; E
Machine1.out:= Machine1.out+1;
6 [% c4 b- [0 P/ M `9 `1 M, C transporter.continue;
/ |" g" n6 F$ w. ^end;. A4 p, M# o! J1 ^- K* }4 q! Z
end;+ q( Z+ r" u4 L$ `6 O# X* N
end;( i8 S/ T* r0 ]5 L* u, V8 L7 M
_/ i8 i3 F. u L$ r+ h0 _! K! K, O9 G* K: T. N W
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method! X6 ~3 m: [& `2 d
is; p5 h- r W( a
do, e. T- B: u8 _6 Q- E1 F! K9 @
if transporter.occupied and transporter.destination= Machine1 then) M0 t! |, t) f- n8 x$ v
transporter.stop;
( q9 e) U# j/ i& ~" s wait 30;
% |& W2 }$ s S. S( f+ X% _# n% G9 w/ Y transporter.cont.move(Machine1);
6 G& D+ Y! Q: y; ~ transporter.destination:=VOID;
/ }6 b/ f. X: U2 c8 V1 N$ x, Z2 z4 R Machine1.put:= Machine1.put+1;" d+ p; e( c- X, z% }1 C4 X5 p
transporter.continue;& L- x3 K! k, {7 b+ v/ l- J9 s
end;
& A/ I1 L6 j8 A4 {; ]) |$ o. B9 o' c% G7 m$ Z6 Z4 J
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?# ]& A) X0 u( ]; g# p
+ Q5 F- m+ X* [; e# m# N
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
- `1 N O$ N& O; ~
. g1 y! g1 ]; H" G 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
- E) P1 b# q2 W2 u7 K9 r2 G1 d
9 g1 }, k, L# A; D5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
' i' u" \" D2 b/ P8 R
# C2 [2 p5 a; R' a5 N4 B w, J4 L, A% |3 B% x$ G
* m" o; D0 t9 D2 z5 u
/ b$ a/ D" c: ^" J7 _9 h" I& d0 T
以上麻煩各位為我解答了,非常感謝!!!!!- d J8 m2 J% |5 P4 W
; m: l% s3 Q! E0 o9 B) Q2 B P+ D" u& y& U2 j1 Q$ s
3 Y1 C) k, z% A; P/ ~
' U3 [" o! H: X4 {2 k( s; }' O |
|