|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 ' g B4 j% ^! I3 m9 v( p3 f
w& R2 S0 `8 z/ V' n7 O% _各位前輩好
% a# U; M: j+ K: l4 `我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
5 c3 \6 r) V' `0 G1 i5 u6 ?我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
5 A( L/ {6 k) S% J# u. W. q我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。, z4 B, a h' t" c e) r) w2 ^
我的問題如下:% j& h+ ]8 }7 a1 x, ]8 V* g
- i# Z- `, u; @* U, |
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
6 e/ L: j; x. P, F& K我目前想到的寫法如下:
8 e7 E- ?! y/ F. E. w/ f6 x8 h(a)如果Machine1是搬運起點,放在Generator裡的Method2 r4 z a4 @" r1 l$ n! S; h
is
9 U& z" y. o4 p/ w9 e- t$ B; ado6 F( u: f+ A. k6 i& p
if Machine1.occupied and transporter.empty then6 f: u/ Y! f: g
if Machine1.out=1 then6 ? n q# h: `" e0 O
transporter.stop;* n5 N- y# K/ ~7 {5 e2 S5 M
wait 30;8 |, P: R b$ c# J' l) @
Machine1.cont.move(transporter);
" V+ d8 i& o1 K( K9 e$ G transporter.destination:=Machine56;& t8 G0 c: u2 ?7 f0 n- F
Machine1.out:= Machine1.out+1;
+ h8 e- P: h3 r: L% @7 m- t5 L$ n7 F transporter.continue;. N: E4 a: h0 f& i5 J/ N, f
elseif Machine1.out=2 then
$ w/ M: W+ h, n ?6 y) b transporter.stop;
0 G5 Z. j0 A7 p% V c" z) d" m& J+ {0 p+ H wait 30;; ?3 \1 Q. c! S: S
Machine1.cont.move(transporter);
+ ~9 M2 d% s. d8 | transporter.destination:=Machine76;
+ G# l& Y' L3 {1 E& J) p8 X- N9 |% d Machine1.out:= Machine1.out+1;9 m. ^2 q R' E$ @( h. E# W! s
transporter.continue;& a# x p" n, T/ ~3 x% A
end;# N2 t X; o3 z( g
end;
4 D% B( H3 p& E* m" U+ Q2 o5 _: D1 Send;
8 Q% Q) I6 O# _( k4 [! y2 r _# n! T+ D6 _5 T' r$ p
$ M! C- R/ ^' W' q(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method+ s# Y, O' N, o! ~& r
is
! b, u6 I) c+ |+ V0 X7 c) a$ Zdo* l5 f9 d R! L& z1 H" k
if transporter.occupied and transporter.destination= Machine1 then; ?9 e% f. r. U+ d j( {5 j
transporter.stop;0 ]; R7 h" I. X8 \# P
wait 30;
+ ^6 a. [% Z! {0 e; L transporter.cont.move(Machine1);" ^/ g" X# d& A7 o) D# B
transporter.destination:=VOID;6 [! e) f' I" n* o' T! O
Machine1.put:= Machine1.put+1;
- g$ ?9 [, o- J+ w; o" j& { transporter.continue;* x% G) H/ C b g+ \' N" V
end;
5 L& k% L$ |' x5 s
/ o! ~. _$ R8 P7 @! `2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
0 G! c% J* T( V" O7 R# t9 S& a5 c# ^
R1 [, z i4 f& R# N$ u3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?& x. l& X' n, n0 m3 i
; J. A1 `% o. p- _) }2 y( ^7 S* A( X 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
& W6 c d+ B* A$ R
W' r% s# ^0 h; H" }- x2 z3 r. W5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
6 h4 ^- ~9 w$ u* d
% t! [$ \- b' l3 j6 Q# W2 z$ s2 `$ W9 ^7 _5 x/ q% l
+ C+ |/ d0 v$ Z/ ]
) f; \) F( }1 n: X/ @5 M
以上麻煩各位為我解答了,非常感謝!!!!!/ P, ^- W* T6 s/ [) ^/ U. E
/ o: ]4 A! ~" _; G, @5 w: ]1 T. U9 ?; K
]! d0 u: O: c+ M8 {0 N
$ }6 ?: M$ @4 L# h1 F% {# i
|
|