|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 * s8 @! [+ Y, Z% u/ z ^- z1 |
R6 {1 S( q8 B" u1 A- y) @各位前輩好6 G8 O) E' c) T9 i0 ~
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。" i5 W* q6 W. K3 J& A0 p" s
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
6 A) ?2 Q8 ^: Z1 X% V8 g8 }* ~我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
$ t. y9 Y& S: M; U4 T0 b我的問題如下:/ b% z: _5 W# g" u9 l }
. ^3 g% x5 R5 T% _6 S) A. \
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
. A$ I \. l1 y# J! h! ]6 q# O3 P我目前想到的寫法如下:
- Q4 u" }: a& m7 w- u" q(a)如果Machine1是搬運起點,放在Generator裡的Method
! L% c3 K9 j; h& Pis6 P, G* f) f2 G% M- c
do
2 q+ x% X% D/ W0 m2 K3 j2 Rif Machine1.occupied and transporter.empty then6 P) W) S: ~; Y0 D( C4 \' G
if Machine1.out=1 then) y8 ^$ @3 }7 e, `+ k# t0 M5 G
transporter.stop;
' j3 n) e7 U9 A, F- {4 ] wait 30;
: j, U/ G" O1 a Machine1.cont.move(transporter);
- \0 d' `1 j3 b8 C- d transporter.destination:=Machine56;
* y p2 B; |- L) o% _- U3 ?4 u8 m3 ^/ { Machine1.out:= Machine1.out+1;
3 M& Q2 D' X5 z5 ]- x% R e transporter.continue;
( ]# Z; }; ^4 Y9 l" s( J3 b* \, |9 } elseif Machine1.out=2 then
" _ @' x- g1 `8 O+ x0 v' ]- k transporter.stop;2 d6 q" k) [5 o
wait 30;0 Z+ m# ?$ `6 e3 P" c3 a
Machine1.cont.move(transporter); N% D8 D( K0 B$ u" A5 H
transporter.destination:=Machine76;
: W+ m, h k9 u$ _& F! G. v Machine1.out:= Machine1.out+1;- [4 c# N4 i! I) \
transporter.continue;- d, Y# X# }* u/ d$ D, Z8 l6 d
end;
; @; h! U$ V0 D/ g2 Xend;; u/ c. f6 Q s2 E# Y
end;
4 k+ Q/ W% P6 I9 j4 ^
, f3 M7 z1 R, {, R" t, V1 j1 B: f4 C7 B! {0 w p
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
3 q: I! Q& S8 j7 Y2 Zis
/ n# r1 s/ |/ x9 Ndo
& K2 @, V2 Q, L/ {7 ~/ Iif transporter.occupied and transporter.destination= Machine1 then3 h% `/ l; Z+ U; \# R6 l
transporter.stop;
+ O% b$ D, L* Z wait 30;
) ^: C: b3 I/ V- h transporter.cont.move(Machine1);1 }, G, f/ _, g! y) T
transporter.destination:=VOID;
. C. E1 M2 _9 s# ]+ d' W3 P" R8 r Machine1.put:= Machine1.put+1;
) H" @( b# ~0 Z) @1 E( |: O transporter.continue;- K# U/ M" l$ N# F- O7 E- E
end;/ y* F( |3 ]* P$ X" N
) x: L! U- Z# e& v6 C* T) [. a9 H4 l; \
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?1 {! W9 S1 S+ N& e2 C
; a9 E' Q8 J2 \. J4 M+ ?; W( z3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
% h" e4 V! V4 Z
9 I" u4 D0 V. z5 R- @* s. Q' A2 H 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?- m) X4 y+ v t3 ~* ]9 {. F4 {2 | C
# P2 d% M N# g5 b5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?0 D. O" ?5 ^! ?8 S4 |1 c# f$ q
- ?7 g' P; I9 ]' D) O) K1 g6 c6 t" y3 R, z7 \+ v
% H. C! f4 G9 B( q: Z
0 q$ W4 S5 R5 @2 C) A! g! O* Y9 X以上麻煩各位為我解答了,非常感謝!!!!!
% O* N5 q) {& Z
4 h, g' K; W0 t: F
* s2 K, H U3 n, ^5 Z; M5 b& Y% m. s# r. U. I
0 S# c& \$ G g3 Q7 Z9 Z0 Q7 \
|
|