|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
/ V* o4 `' ]: g& ]
5 C* I7 O) X3 F9 T3 u7 p( ?! K# D8 M各位前輩好! P4 q9 _/ g7 N: m2 g4 Q/ ]8 r. Y
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。% C2 O) w) h; Q
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。/ }% U7 x2 ^6 z! h% z9 u3 p/ P( X, h
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
$ a4 A3 |( s7 b3 l1 O4 ~我的問題如下:
1 a+ _: x) |6 D; I$ J, b& {
- X6 [( N# G, s7 G5 \" M' M% F1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?! C1 p- G/ d2 P& c
我目前想到的寫法如下:
. W7 G, A8 T+ V3 `* U9 `) F: V7 K& U(a)如果Machine1是搬運起點,放在Generator裡的Method3 n( m, {3 {. |/ {
is4 E: ^5 L, {7 s6 V
do
- h$ W3 b" Y9 Z: G' T5 q( Bif Machine1.occupied and transporter.empty then
) N, B0 G4 t, K: o1 z2 C* | if Machine1.out=1 then
3 c) s5 D9 ^5 Y transporter.stop;
6 x- w* p2 A& K) a6 p. A/ ? wait 30;2 ?. Z2 J# E+ L. B) L
Machine1.cont.move(transporter);
( x" G5 h5 H+ V/ f transporter.destination:=Machine56;- b/ K" v5 X0 R( U/ P2 j
Machine1.out:= Machine1.out+1;
" ^( D! a9 |: H) N/ t4 w. @ transporter.continue;
8 y: t! m; ^" w6 k4 x elseif Machine1.out=2 then% q: [8 t5 T# E1 F+ Q
transporter.stop;
( D% V# u) U) [, R$ C wait 30;
5 t% D( A' d/ V Q; W' d& D( s Machine1.cont.move(transporter);
: q9 x3 c4 H" Q! n0 ^ transporter.destination:=Machine76;: B# a$ e+ G' A0 g V% O# M8 ?$ x
Machine1.out:= Machine1.out+1;3 f8 y0 _, P3 v3 g% E
transporter.continue;' K; C( [; L4 E$ L3 Q6 O0 z, v& E
end;
& ]/ f' `7 _/ `% l- O, E& ]end; C1 ^3 F l- q( U7 t& I- X2 l& w/ i
end;" n4 e7 {, i3 R( t# J8 ]/ U
- m4 B5 A; o5 Z) Z: A+ u* r6 e7 q
. Y; S2 D" r+ q( k0 ~' ?(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method3 Y! _2 A; I2 _# m! n
is
. e: J4 U. E. \1 x$ _6 rdo) z$ Z* q& P# Q( i7 x
if transporter.occupied and transporter.destination= Machine1 then
w& s& [) d$ G* u transporter.stop;( D' x n5 [8 t! c K. V/ U$ ]
wait 30;
+ t" n- I0 ^# C transporter.cont.move(Machine1);/ l% o! o+ K7 W4 K h
transporter.destination:=VOID;
3 p% H) o7 c9 a/ L+ R" n; D Machine1.put:= Machine1.put+1;
+ g, y, k; Z3 @, p+ K7 W transporter.continue;- w9 {/ n, H; \' q% a
end;. y$ h Y: z6 ~! J2 |
" }% d( e3 A% P! F
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
3 ^& ^: R( H9 T0 A$ [
" U$ K0 f) y3 k4 L) y9 ~/ x4 L3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?* k* k( W/ u1 o6 A: l" M5 }/ t
% z! B( M/ M- @( F4 V/ W) q4 u
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?; N) B+ e( [3 m
/ |" `. g7 y+ F5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
0 o3 K+ I- e4 g, r9 _6 ^) s4 o! F& w1 Z2 w5 ^$ D5 [
/ j- e0 S8 t- T8 s$ f* A3 m
; u$ p, X8 l# v
8 v& S# \' e$ n( Q9 s以上麻煩各位為我解答了,非常感謝!!!!!
, l4 H9 u! |8 U: ]# {' ]6 l0 t |. R8 N- j
# U: u1 p% c' o% E9 T, w+ @' D1 a) H5 r" {, s9 |
, u: N0 U% q) G: m, N# e
|
|