|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 1 m- E3 C$ g1 X, e# [2 f/ P$ j7 e8 Z
: \# l9 x4 U8 [
各位前輩好
7 |- N# X4 X6 [我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。" Q2 t; J9 [/ G
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
4 ^8 D8 k7 W7 A" Z$ y. O$ t我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
1 z/ e/ P* y2 ]' a我的問題如下:
' K' O* Q% L. H x
# y& H2 N u9 s$ A& a1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
3 u' X. @& i% O: w2 F我目前想到的寫法如下: g, \, `, m4 L- z9 e
(a)如果Machine1是搬運起點,放在Generator裡的Method. D! l% [6 ?* s P+ w4 H6 `
is
8 w: J+ w- W/ j% u+ Zdo- c7 T& ]: `7 k# ?; C' T$ @/ ]
if Machine1.occupied and transporter.empty then
7 G" G: Z1 X9 v& C, H6 _ if Machine1.out=1 then
& a( W$ V1 r5 E8 C2 z. r transporter.stop;
0 r! S7 q- e% d( g5 W, G3 B! Z wait 30;" f! h* F* h7 u; V2 l! C3 e
Machine1.cont.move(transporter);# V) e; P+ g: z; e8 d) s& m3 o
transporter.destination:=Machine56;) r: Z' y* K# p) n0 M3 L
Machine1.out:= Machine1.out+1;. k# ]. O; F/ d+ b
transporter.continue;
' Y: _6 F4 C& n) D$ P elseif Machine1.out=2 then
/ ?7 m0 m- ^. H/ x transporter.stop;
2 F1 ?9 `6 q: Y3 t- Y0 ^ wait 30;4 P b0 z# M6 X) v* ]) z3 B$ Y: I- m
Machine1.cont.move(transporter);
% U b0 J% {$ F4 g transporter.destination:=Machine76;
! T2 ], V+ ? c/ R) O9 Q, c Machine1.out:= Machine1.out+1;
! z- N. f4 `6 ` transporter.continue;9 W% D; Q. f3 N1 O6 }
end;& X P. U8 d" D$ L$ M* _
end;: n# g- M# w0 T" t6 c
end;. u' [. q( ^6 x* {
9 o) t8 v$ `: b. Z" {1 D' Z3 z4 w! }* X; `: z( c* V3 F, [
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method/ X) l( Q# d" N/ A0 N6 K# ~$ A
is8 u# d! m- K* N) F5 h) N+ [
do! }9 x' Q# ^7 h" V% ]% d, U$ Q3 Q
if transporter.occupied and transporter.destination= Machine1 then- I+ l: q$ B/ ^
transporter.stop;
- p0 ^. G+ O" c5 a$ i' K; N wait 30;$ ?: B5 A' G4 P! {5 h3 `) D6 U
transporter.cont.move(Machine1);& w4 A1 D; E6 g3 N/ L! ?
transporter.destination:=VOID;2 r+ B( _: ^2 x! _0 r6 [
Machine1.put:= Machine1.put+1;1 u$ |0 j/ r9 l- O) C$ v
transporter.continue;
! z% \ T9 c2 V: F& }end;( B$ L7 a+ a5 Y `2 y
+ M0 O' }3 K ?! u" M# d1 s( W2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
% r a" q3 S" P! q5 d) `/ ]9 v3 \
5 z# r; b( o/ z) x; [3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?4 p. }0 i: e% C* l D
1 `8 L$ i A2 h& G. j T8 |2 y! ?+ n
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?- V r d E1 M: i% v
4 R" S+ M7 M F# i9 r+ O0 q0 c! W4 ^
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?* u0 v! \) `3 {. ?, o* G' z
) t% D: ^# e( [7 G* W
: j5 i7 g% t& B% [% E
L9 `( m) f7 s/ P
% w+ ~9 z6 L. [ ^" t s以上麻煩各位為我解答了,非常感謝!!!!!' ?6 p2 \/ t( a! \' U `: y' ]
; W a2 C( x1 V/ R
0 L% q# }, K6 t, F, @; A: ~
+ M% L! |3 ~/ i! V+ j) i- J$ @
|
|