|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
2 h( o0 I" L9 W) @8 k
6 `) p! k# q, B+ o# v! J* Y9 e各位前輩好
$ t, K0 d8 b2 K! m/ L3 f我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
% @( P% w1 ~: m H: V& ]$ n) G我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。# d9 i7 |' [" _
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。) {5 V% _ E9 I+ g
我的問題如下:# _& {( }" z6 P k- X2 N
: ?) F& k& O2 x& b- {8 G$ } i
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
5 p) @+ l; \3 v& x我目前想到的寫法如下:8 Z8 ?2 ^0 B/ z1 z
(a)如果Machine1是搬運起點,放在Generator裡的Method! Y3 s% T9 |* [, a1 q
is
8 b% T5 b9 I" p9 Sdo
9 ]4 U2 w2 Y& z# O, cif Machine1.occupied and transporter.empty then
. q2 _$ c5 |8 e* s0 ^3 C4 [$ N; O if Machine1.out=1 then
! h4 O- l% B# [4 K1 @0 |8 m8 ~ transporter.stop;
8 z5 s" z8 t7 d) _' r) n2 a0 a wait 30;) E* Z( J, b2 Y9 j, |
Machine1.cont.move(transporter);
; S7 I, o. V+ V8 h1 @8 b* U' S& q transporter.destination:=Machine56;
, ^8 |/ L( o/ y- J& } R Machine1.out:= Machine1.out+1;' W& C4 Y- I' C; U7 k0 u
transporter.continue;# Y" m7 W' m7 q3 P+ i
elseif Machine1.out=2 then I+ L, G9 [( k$ b" s
transporter.stop;( N" j# `3 A/ |; P! }7 q
wait 30;
) l7 I! ^3 E& S* P7 } Machine1.cont.move(transporter);& |# \8 c: s8 l8 L& r9 T: j3 e
transporter.destination:=Machine76;% q+ t1 d: _5 B0 s6 C& N! H( s, B
Machine1.out:= Machine1.out+1;
+ k* [5 i& b0 C' w3 k) o, U' `" G transporter.continue;
% q# u3 T/ B" p/ H3 M! r% q( Qend;
) L4 y+ R/ y; D5 E: Kend;! `; m2 _2 j! Q; J: @
end;
G$ @, n+ q8 f! ^" `2 t& g
3 C5 B; d8 K1 F) F' g
9 E. _# [ y/ Y# O2 [' z(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method$ p5 y4 n2 G& \2 W+ o7 e) Z: A
is
) K9 h/ Y# g1 y; U7 P7 \4 I/ h+ Ido* D4 A9 k7 G( e
if transporter.occupied and transporter.destination= Machine1 then9 i% m8 |: `: Q* l: [; S6 B+ m: l
transporter.stop;. P @7 b- P& t
wait 30;
* B! e- @' N9 h$ P transporter.cont.move(Machine1);5 X- r1 u; V1 J
transporter.destination:=VOID;% m) Y) g0 y! G- e: j7 W$ a2 k7 V
Machine1.put:= Machine1.put+1;3 Q0 Q0 h5 y8 T6 z& A W
transporter.continue;: o5 O: ]5 h3 {) e, E9 e/ ~
end;4 b( m& Q; w$ r
) I: X$ }7 \" W, @6 b F0 G( s2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?* q E. d# Y. q* b# b$ }9 X: ~
% J% ]7 B; _1 q6 A- Y+ ?% r3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?) a& z7 t/ I" n, E% V, J
/ ]( y% M2 ^ o
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?& Z, R6 w& {7 j4 e6 P
" ^9 D; M0 h" m
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?$ D! A/ p( x* |
4 p( W3 s+ `8 `" R$ J3 s' G: i; S$ q0 t3 k# I k+ p
/ I; M7 D9 t7 S O4 H( F* B! G
) |( J {- ~& ^8 d/ a5 Y, M以上麻煩各位為我解答了,非常感謝!!!!!
. F- `% W" k% E- Z( N/ {
+ P) V& p( N6 C1 l! }% u2 ~7 b2 ^9 Q
1 {# m0 M5 ]: R2 i: f. c3 g6 `, }$ |
, ?9 N4 e. D& k9 s& K$ | |
|