|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 + e. O/ b( }! ^/ `* x3 C- i
. F: F, l- w$ [8 y4 s* M各位前輩好
/ Q( E# [" ~/ ]6 O% o {我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
& O: ]/ a) T2 {/ S我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
) P( `' R+ {! x# }: v8 G# D# ^我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
& p, W: t n/ d/ c. ?我的問題如下:$ @4 N' v2 S; I/ Y" A9 C
8 o. E: X9 x% [3 y1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
, B! R+ J) C7 l" @: x, x2 g1 M我目前想到的寫法如下:) z- q+ v. {. _9 w: H9 D- C* s3 `
(a)如果Machine1是搬運起點,放在Generator裡的Method
) s' g2 ?+ q6 f7 Y \$ K kis
# L, _ i& C( fdo; U; d, Z( J# I% L# I5 |
if Machine1.occupied and transporter.empty then
6 T! M' p/ y- W! p if Machine1.out=1 then5 B3 Q, S( o3 c7 |2 X8 ~
transporter.stop;, k; J; \. t5 V' S3 q7 u! g) |1 ?
wait 30;
3 P. M, u' V4 e/ T, n U- Z* X; e Machine1.cont.move(transporter);/ m0 J) ~0 {- S# [- A$ R
transporter.destination:=Machine56;3 T4 `. d0 v, R/ |5 r" }* }
Machine1.out:= Machine1.out+1; j% M# v) g( ~+ E$ @, R- R. a
transporter.continue;
9 R: F5 d' B4 y8 y! V4 i1 m7 U elseif Machine1.out=2 then3 p# C# {8 Q7 G6 k. T; t+ a
transporter.stop;
& |) {2 `9 R# Y1 B, o8 h# a wait 30;
" `, X6 v1 ^5 I0 n. ]9 n Machine1.cont.move(transporter);. }7 `. B& B7 B7 I: u& w( p# B
transporter.destination:=Machine76;
3 U1 n/ d: c5 p2 @1 @ Machine1.out:= Machine1.out+1;% s% L. W. m" F" i
transporter.continue;
3 d0 E" H: m+ L2 W. y0 Rend;0 p, g9 l; D7 y' v) p' {5 Y
end;
! l. ^ C4 U7 R1 t# ~+ @end;- e! j' P. l L9 a8 X9 u& J: E
2 f/ B# V% ?6 C j% \' m: x6 [% h* B5 _3 |
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method7 n/ q" L6 w6 A! ?4 k0 t; M4 h2 K3 f
is0 D( x! a7 W% B4 ~( S2 h' i
do
( j- i2 z2 j: B* `) L0 N4 P- b4 eif transporter.occupied and transporter.destination= Machine1 then' k" X7 L1 \ V, l1 F4 X" P
transporter.stop;
# c2 M8 x) e% l wait 30;
" B7 b& \6 ?& u+ S# s/ q L; H transporter.cont.move(Machine1);
0 S% r" U4 u; B- a( ?, O transporter.destination:=VOID;
- j, y8 H, ?- {5 N Machine1.put:= Machine1.put+1;" o- u( r& _" ~" n7 s9 c& O
transporter.continue;
& w# n+ @8 @5 u$ }end;" C1 o: c6 D; }5 ^( v0 }
; \8 ?, A& f1 s9 P3 a2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?. s5 j% [& U1 F- e
0 d- \1 T1 A x0 O% V8 G# o3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?% e7 n4 w$ j& y3 H2 ~ x$ Q, B
/ G2 f/ h; M" Z
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
0 T/ P: P1 M& K5 V* [) W
C: c' {4 A- @) X5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?8 D6 M! Y' D! n7 H4 H; i
3 I, t2 a" |& L& e
o* a) \0 _7 O$ A: s; v q' R& }) @* s/ |* G& O
: I( P" k S% D8 ]以上麻煩各位為我解答了,非常感謝!!!!!
2 b" w6 e/ ]4 m$ x' m K% g' L0 T" i* R* s+ p4 m
( T7 A- O4 I' e( S
, V: c% I$ U5 u# [( [5 M8 F8 ^0 U; F
|
|