|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
$ R2 W# ?8 f* r$ W3 a- D$ m1 k: M) g6 D
各位前輩好
' |; y3 ?+ D- j7 z+ ~# x S: E我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。$ x' W5 R9 ?( P9 @! v* a1 |
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。" w1 G& ~2 P8 e* Q; _
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
# s; A* n. u8 i7 Z5 A8 G我的問題如下:+ y6 G: g$ ^/ a# [
" N/ ^8 o0 h( { u; m" X, ?
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?( A0 F: [* Z. `2 N. D7 V
我目前想到的寫法如下:# N0 c! t6 {, V- O- ]2 g# {
(a)如果Machine1是搬運起點,放在Generator裡的Method
) A/ G# ~- Y8 ois) I- Q4 I+ R# ~9 C: \ Z
do- @: A3 h, s! n' M% A
if Machine1.occupied and transporter.empty then/ L$ G3 M! ]/ x! \6 S
if Machine1.out=1 then: W1 \+ m# V# m# Y2 I1 ^6 D
transporter.stop;. \) }( T/ x l" q
wait 30;; m7 q. ]- x- G% k( o% A
Machine1.cont.move(transporter);- M7 F- i* g; `, c4 R
transporter.destination:=Machine56;4 u: B4 x8 z# K% c6 l/ [
Machine1.out:= Machine1.out+1;( t w( F* u6 b+ Y
transporter.continue;
, o7 I$ v+ X/ m% e K+ W elseif Machine1.out=2 then8 |1 y2 w1 O) S
transporter.stop;
& @/ b+ ~" v8 _3 `! l- Q+ ~6 @0 F* d% B wait 30;
& N$ R* D5 ^, {9 g Machine1.cont.move(transporter);
$ z0 ]8 u0 D; E% q4 d4 ?$ @' ~$ I transporter.destination:=Machine76;7 |& [- A+ E4 a' K) U
Machine1.out:= Machine1.out+1;4 U, |4 ^0 \0 L, C
transporter.continue;1 p3 W' f7 `- @
end;6 t, L3 i) Z3 @3 |3 V" |% w; U9 X
end;. p* ]6 ]7 p+ p! G3 ^# @
end;
9 G8 O! N: Q' t3 U/ G3 m4 Q. Z& R% Z7 K/ O1 d, U1 O
/ o1 i0 x# E9 c6 E+ ^* `
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method9 P: F) g! S5 A
is! p8 A' B, ?7 E/ b3 Z0 c4 u" B
do3 d% [; V+ D S% |0 T: m; |4 ?& {
if transporter.occupied and transporter.destination= Machine1 then
" D3 [0 |8 L1 t$ G1 A transporter.stop;
2 l. q: G6 ~& g" S. |& f$ \# i wait 30;! A; s. K; H8 J. `1 l" B
transporter.cont.move(Machine1);$ o* f6 p& `( i! v; e# @- M
transporter.destination:=VOID;/ _( `6 D8 ~* e* T
Machine1.put:= Machine1.put+1;
j, g, G) o0 L2 g& z9 X \ transporter.continue;& a& ~7 t7 i7 |, x
end;
/ c0 _9 O2 L9 x! I
5 d+ m) g7 S' k! Q( |2 M2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?/ y" H" _8 Y, I' }( ?9 k! {
- S2 G+ X/ u5 R# h1 N! l
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
9 u7 n7 A% M$ `" i# X+ s0 Y+ o& V
3 o7 [ _. u/ W3 H9 C, c. O( a 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?, y! w$ x, a, d; `3 c9 ?* J) O
. h- y1 H/ O F7 |) W2 ]7 ]$ H& ]3 B/ K5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
o. r c. h) \. d; ~! O
* W! c8 S# ?# L* l9 a/ U. y
/ u& O( x2 Z! V% C' ?/ H; Y3 u* v/ n7 [" m
& B; A0 \. b1 O9 s8 \& K; e" ?! v! j以上麻煩各位為我解答了,非常感謝!!!!!
! h6 y& H n4 ^0 Z* @/ c
3 Y: R: r& o) i* N) [0 D& B! q1 Q2 O
8 O2 A# Z6 d3 w0 ^/ j
9 f s9 ~% @! o$ i% _ E |
|