|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 % X0 a- D+ A e9 @0 G. r" w- v; u8 B
, r" W: h& S, K# h- }& j* i
各位前輩好7 Q7 C" L A4 m+ `2 |
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
* O6 ~* c( w. v我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
; d6 d7 _& n! |6 P G$ d我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。4 {# H' P/ i) U l0 l! ?
我的問題如下:3 V: n u. c, Q$ ]( _) C+ z8 i5 |
( b1 z" P/ X% N. N- m1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?/ x& r, p/ H, G8 l; h
我目前想到的寫法如下:
8 \& ~" f6 T2 I/ h5 e(a)如果Machine1是搬運起點,放在Generator裡的Method
" Y- s% B: N& kis- B! v' [8 a L6 G6 j' t l
do
5 G8 Z& O6 M, K! mif Machine1.occupied and transporter.empty then1 T0 Y. W. H3 E! a, P% c
if Machine1.out=1 then F! ~# v$ _+ M, X, ?2 P, |
transporter.stop;
5 I' \. i4 E5 d3 ^7 n& R9 k5 d wait 30;: R' T4 g' `) l
Machine1.cont.move(transporter);
* T" C4 b# w5 P9 A; O \2 } transporter.destination:=Machine56;; {3 _# c4 X, E1 n! ~& W' s5 |
Machine1.out:= Machine1.out+1;
5 @0 j w5 Z! D( [ transporter.continue;
5 \( N- S( H6 g% ]$ p elseif Machine1.out=2 then7 T* V, k4 `. H+ y9 v1 a
transporter.stop;" R4 w( J. Z) Q
wait 30;" ~/ K8 U9 r* E5 a
Machine1.cont.move(transporter);+ _2 F. {7 R, D; u1 ?
transporter.destination:=Machine76;
, N4 g P) e# R) w) w9 L2 G Machine1.out:= Machine1.out+1;
. X# j" M3 |( Z; J- z; A+ R, F transporter.continue;1 p6 @# w0 O/ F
end;9 n* T A g8 N* n" k. o
end;0 A3 ]* g# H3 \* B/ v
end;
0 ]# w4 z+ U' E2 F N) m( \3 U7 v
' I' M" C$ l; X0 F6 z6 L% r- e! c8 I5 k4 T
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method7 D- w5 @. M% w7 {/ r2 y' A
is
$ x) A( |: Q( j4 A$ m4 b1 ddo( W2 o. m: r& D: C
if transporter.occupied and transporter.destination= Machine1 then
- f s: S% }( r transporter.stop;' {4 W' _5 @7 x- ^$ p& {
wait 30;& ~5 T. q2 p# u0 F0 w* W
transporter.cont.move(Machine1);
4 s" L. I8 _; i( G transporter.destination:=VOID;
- t+ d* Y5 }6 d2 k+ w( r Machine1.put:= Machine1.put+1;8 [' m6 C) Z2 w: q6 o6 q
transporter.continue;4 p& m7 f: e g6 ^4 S) l
end;
. _" R4 H/ V d- D* F$ C
, f6 B+ s3 U3 w2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?4 v2 D9 k& D c) t4 l
! |. X' B9 C/ \1 M9 B9 J3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
' u: Z7 b; H4 c0 {6 c
- e- q+ a0 l0 @ A 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?, g$ J: B% q( z/ h: e" v
2 O( j- m+ w* J5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?3 _. I8 G3 G$ }6 Q
) W9 w0 G% Q. z3 V; a
( `7 {$ ? G, C( Q: ~2 V! [& y! T1 ?0 ?; S; Z
3 \) E# m0 }, s2 [. m$ J8 ?以上麻煩各位為我解答了,非常感謝!!!!!8 |/ Y5 A+ e( Z
: x) P4 Q2 K1 Y. a9 {- U" w
- R6 O. J* t. |/ b# g
. K7 {# o6 v n8 o
/ n2 U+ G" b( \( V$ _( T
|
|