|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 9 S6 k" N# a) u+ h- k
3 q& ~3 f4 ~# `) ?各位前輩好
3 K3 R9 v) F' e, U5 Z我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。# X' ~! [7 T2 A* u5 j) q, }
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。& x7 U" e2 v1 a; M
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
# I9 @# O7 Z/ L2 A# [我的問題如下:
& n: Z7 m3 w% a7 T% a
4 x$ E& S6 q$ z* F; u9 H# L, N5 R V1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
. }. z7 g" Z+ z7 C7 w我目前想到的寫法如下:
! ~* R& O) K3 \$ d2 K(a)如果Machine1是搬運起點,放在Generator裡的Method
- b$ y. Q2 A9 W! t# a& Q$ zis) N1 {9 c3 _% e
do
' o3 k- G, R! M; w0 V' Z- i5 jif Machine1.occupied and transporter.empty then' [$ R' V2 D! M; b$ l5 U/ l# R
if Machine1.out=1 then
* z5 g2 C: [; j8 a transporter.stop;
! i {0 c3 g+ d1 d9 O wait 30;
; H" i% L0 e& `- S$ d Machine1.cont.move(transporter);
* u* t9 q( r8 ~" ] transporter.destination:=Machine56;+ ^3 g/ c9 R3 }& g0 K7 H$ C
Machine1.out:= Machine1.out+1;( j% q2 ~1 y4 {7 ?0 C, ?
transporter.continue;
2 u4 p4 e% |0 ~9 a elseif Machine1.out=2 then8 J. x7 ]$ M4 e! i( d9 A& T
transporter.stop;
5 r: R0 G9 `) S. I" ^ wait 30;
# l7 I/ v5 e' n' y0 n9 ~ Machine1.cont.move(transporter);/ v4 o) B/ m" Y" x" v+ r, A3 r
transporter.destination:=Machine76;/ O* p0 |% v a. T8 G: [- f. b
Machine1.out:= Machine1.out+1;
1 h! C% N. R2 @/ G. y transporter.continue;/ I! M2 o- [) z* W, R2 Z0 c
end;
& t/ C3 w, Z- u4 t5 ]1 M8 t( q0 gend;
! Q1 a" \4 }5 c. s, \. W! y. B1 F( yend;# X5 K# h0 h8 y6 {- l/ M6 a
; F/ u/ F6 W7 K* v# H9 G/ w) k! h
& z7 ~8 b+ D' P$ D" v! y(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
/ n% x- c" G; r B- x7 N' [) y3 eis+ s* c+ n( o) G7 d/ r
do, t( u2 Y9 R% g$ p/ Y
if transporter.occupied and transporter.destination= Machine1 then4 _, H, \# C1 t! T, k; H
transporter.stop;) b- Y% P- r9 ~9 y
wait 30;
& ^- }/ A5 J7 A, A( |; n% W transporter.cont.move(Machine1);
' ^! k4 s1 |/ J# J" H3 \' o transporter.destination:=VOID;
; q, M7 R4 k. c g( Q7 ?4 N Machine1.put:= Machine1.put+1;# t- F' {0 a- Y3 V" \ U( q7 @
transporter.continue;
& z2 ~# m/ Y" X* Dend;2 s0 d: ^7 Z% a) i
+ ]) D7 ]7 b# W/ j7 U/ k( J
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?2 h2 ?6 u& F0 l6 |
. w/ \5 S; C) a1 e9 x
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
N3 i/ [& V2 ?6 C6 X$ y% X$ N% Z; ?" @" J* ]3 N( F
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?$ e) q: h/ K3 \$ d5 q. j- _1 f
6 Y( ^/ c* f: y# o5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
6 a% G, N/ Q, `
# C: x n2 c) S& ?; Z4 ]' S# I9 X7 G
1 b& i( t5 ^" {/ S; S- o% @+ Y) ]! L8 L A# H) ~
; R. U; `7 T% ~' o0 g% t
以上麻煩各位為我解答了,非常感謝!!!!!5 c$ z& o, {, ~: W5 Z
4 o' [. ^5 k9 K& u
% i% {6 b) C4 r; ?0 W
8 g) [ ~: k$ |4 `, u# c2 J; I' m$ T1 M2 q' v9 ~. a: r
|
|