|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 c" @: J: D* f( e
$ z3 Q" I; V( y. N1 p. ?% k+ j
各位前輩好9 ^2 ]5 ?6 H, R" T* j- l1 J
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。# E3 V0 G. `( J
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。5 g, r& ^# k: q( T0 c6 J( L4 j
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
% {0 c0 U' J1 |我的問題如下:
\9 p7 F5 G/ j, ]1 }* j& V
- `0 I2 s' }! W w1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?0 m) t0 d- e n E
我目前想到的寫法如下:( K6 r- g1 D0 ?) g2 w, M
(a)如果Machine1是搬運起點,放在Generator裡的Method6 N2 v& a/ q6 ^; l6 g& p
is
5 d, O) [4 z( wdo
5 V9 y5 f5 n0 z+ T! d9 F! J; n8 Q" ]if Machine1.occupied and transporter.empty then* Q- y! T4 U* ~4 T/ T
if Machine1.out=1 then6 e; J( m A( B+ N
transporter.stop;
) _' |9 @4 r# X+ P5 F# c: [) n/ i9 g wait 30;
% c7 d: Z# G! H% Q1 V Machine1.cont.move(transporter);
! _1 u2 w i0 z transporter.destination:=Machine56;/ g2 s4 D9 k, G/ N
Machine1.out:= Machine1.out+1;
* {7 g1 t$ p) r, C5 g* j transporter.continue;
9 D `9 H2 x7 N' R7 z. [ elseif Machine1.out=2 then
& ?% ^5 ]1 @6 ~4 v- ~$ ?9 g transporter.stop;# r u L* z: O& [; S# E
wait 30;( ]9 g# O: j7 j3 O; c& p: h
Machine1.cont.move(transporter);
! ~/ p. J( o9 t8 t* X3 T- W transporter.destination:=Machine76;
/ @& m1 ^8 Y6 }- o$ o' _3 }8 |$ A Machine1.out:= Machine1.out+1;) H: N1 v3 p, ]) [! f- T2 R% ?' B2 ]
transporter.continue;
% F2 y4 s; H n5 l F; dend;& {4 O7 J7 L+ ~2 a( |3 `/ H; C) [
end;% q( H6 I4 U" m1 D9 B2 k. U
end;
6 K8 }( n9 |7 {6 M' x- _& K7 d2 G
3 r6 P& m1 W9 t3 B( I" j
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method8 b- \* t; G- @; \( b
is: b# V: Z7 Z8 w' i1 a4 z& d
do
4 i F$ f# j5 I4 h4 iif transporter.occupied and transporter.destination= Machine1 then
$ {0 [/ f3 C# H% u7 w U transporter.stop;
+ O$ E! E# H! R T2 C+ L; D& ?- O$ y wait 30;
) Z8 m" b2 ?- a4 `0 x: |. p( _ transporter.cont.move(Machine1);( B& @* t2 h7 F3 X( {0 {; h
transporter.destination:=VOID;
, f; A9 z$ b: u: a, z Machine1.put:= Machine1.put+1;
0 t+ ~1 n+ D4 z) u* _ transporter.continue;
5 v0 [* K8 a, _# `+ w. `end;/ ], r9 _$ M4 a
% n9 j; ]( H+ E
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?9 q& g1 V4 O# V0 W
& e% w/ j7 }& ^. K M7 Y
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
1 R4 |, J& m! e5 c, t6 R0 t' j# g0 u7 Z% i F
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
+ A# @3 K1 K; n
. z- H8 _8 J4 e) M5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?( h2 y: \! K* N, o. P& b8 @
! D$ q, x& ?0 M2 E8 Q7 R# T9 i
+ ]9 |- G: k5 `
1 W3 M& U- w8 Z8 R( {
/ X1 U5 b# H B. x以上麻煩各位為我解答了,非常感謝!!!!!
A& E; ?$ m# O% J
3 h# O! `2 n' _0 ^4 g0 b! z4 r$ k; [4 t6 y) z2 J/ K
! e, R6 I/ q' n! D+ N* ^+ t$ x" n" N. N* U, C
|
|