|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
! U9 ^0 @. x1 d4 k8 u: o" A6 z' x: ~+ ]
各位前輩好4 r* G, L' m- \! b7 v2 |' {/ n. V
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。2 D$ @5 G [# _( S7 _
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。$ Y# l _& A8 C% q* G
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。6 ]/ p G! f7 i+ [2 c% G8 r
我的問題如下:
7 B' w* f4 F$ D+ g. ?% @2 B. @
' `- V- C9 Q7 L. }1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
% E/ i6 F+ v0 \2 D$ O) `4 n) Y+ x$ [我目前想到的寫法如下:
9 l7 o) [% d+ L$ T: a$ F(a)如果Machine1是搬運起點,放在Generator裡的Method. S* E) H/ b4 l- N
is4 \4 {( P/ s& b# n7 j1 i' t; `
do4 e; o! {, e1 {6 M9 B
if Machine1.occupied and transporter.empty then. O% j1 x( ]/ l. {' D5 E7 m
if Machine1.out=1 then0 ^ V8 A2 w% W6 m* \) x# I
transporter.stop;
: X% c; q$ k% j/ z% {# ^ wait 30;$ w! d, l } E8 g
Machine1.cont.move(transporter);
# N$ H4 s+ S% A transporter.destination:=Machine56;
( s8 @$ f" t9 ]0 Y! t$ b# ]- Y Machine1.out:= Machine1.out+1;* l$ z3 v) {8 t. _& s( j; H9 [# Z
transporter.continue;
- s/ F: p a7 g- G6 x7 w1 }6 S4 u elseif Machine1.out=2 then
3 _, s6 H R0 f9 ^, D' g transporter.stop;
8 }7 U9 Q' ?# }9 v* V, Y+ I4 C7 V' d0 Z wait 30;# Z) ~' I }" U! X
Machine1.cont.move(transporter);
4 z# l6 p* g p: e- a transporter.destination:=Machine76;. @0 l. r3 T1 k) ]
Machine1.out:= Machine1.out+1;
- \/ `; [' C* X/ J+ s! n8 w transporter.continue;1 ^# e3 o! S# W" t( a' c
end;/ ?0 X6 h% D. y" W0 S
end;8 \( M, F$ b0 M0 ?
end;. o V% `$ D% d# @3 u
9 P3 E! {/ I- g
, \& O7 W8 n9 v$ h2 Z(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method6 _6 D/ ^3 {4 t1 @0 s2 a4 \) _1 n9 _
is* V! ~2 e: D7 ^3 @
do3 Z: p6 e5 t5 o" j i! r8 ?
if transporter.occupied and transporter.destination= Machine1 then
2 ^ U2 h. U. }$ i0 S transporter.stop;3 K6 M2 C2 X+ z) G0 e, ^
wait 30;* `' p6 }- ?/ @- O
transporter.cont.move(Machine1);
( Z4 U4 u3 ~3 [5 O& l* x transporter.destination:=VOID;1 v' h0 O1 Y: a& U
Machine1.put:= Machine1.put+1;3 Q1 E9 N2 K6 I: n& q
transporter.continue;3 g: s4 C1 K/ k) N: m8 k
end;* m u2 E& n9 r' q
9 s) Z2 u# P1 D0 u5 ~( w! y! [2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
$ W! l. m/ ^, Z3 `' r* {, r( {9 e# ~ Y. f4 e9 \" h
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
* J/ R8 e* [- U( C" Q! i9 D
! ?6 A5 v8 l. m3 ^! g# X 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
$ r( j7 g @: u' ~* l' o
- s* V; b6 F$ c4 g+ `5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?/ b+ W1 ]: X- P, _
! h9 G2 J2 _) {- L
7 e6 c$ p' z4 K
6 Q# F2 v! A6 p# h9 N& D- c/ `- i7 E) W$ F" h7 j4 U x. }! Q
以上麻煩各位為我解答了,非常感謝!!!!!6 R2 c/ Q, y& i! P
2 v0 F1 T. p' m6 J3 w% o
: V, g) g: F! W6 M7 H2 g5 }, |
- s: _1 b5 k" t
, h* o3 }+ K! \$ u+ Y |
|