|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 # t, a$ c. `/ a: | D5 r8 A5 V; o
2 Y9 g; o" V+ s4 n! [/ t各位前輩好6 e0 ?2 p# \ @3 L6 \
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。( j( ~- X0 G4 \
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
$ } b4 L, Z6 l% i% |我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。- L# ~2 m# y- N0 e- ?/ d/ X2 ?7 A
我的問題如下:
% g* W2 i! a9 q4 E& T1 c4 w
/ v/ [' I5 B; y1 s7 T' E* w1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
* e0 B" Z* D! p" y! k2 J+ p我目前想到的寫法如下:
; R5 v$ {5 u1 g(a)如果Machine1是搬運起點,放在Generator裡的Method
9 M1 g. C8 Q( @% f4 `: Eis
& }8 Z6 L I, h4 }( g# jdo0 j3 e& X) k s. d" W3 R
if Machine1.occupied and transporter.empty then
0 u7 {; }6 @( Z( ?( M) O! o if Machine1.out=1 then8 u8 v1 _2 }1 k. {& F1 f
transporter.stop;
Q- f- a+ y# P( V6 N2 L wait 30;( H2 m% Q! v) H, H& Y
Machine1.cont.move(transporter);
. _) F. x/ c1 L1 I) ^' x9 f transporter.destination:=Machine56;
; A7 B( F6 L3 l Machine1.out:= Machine1.out+1;, C* ^) s/ r& Z+ a. ~% }* W
transporter.continue;; o Z! Z9 N: P, W. W3 _
elseif Machine1.out=2 then
% ~& s0 q! s7 N t# S transporter.stop;$ `: K7 b. w0 D% p
wait 30;; ~4 N9 u, h! p
Machine1.cont.move(transporter);3 `0 C3 O2 G* ]; P
transporter.destination:=Machine76;
/ V6 k' J7 {5 y; P T Machine1.out:= Machine1.out+1;; K+ m1 E2 i) @
transporter.continue;
: k) D% G( A( a! e' [; V1 O% S" I$ oend;
5 R- S2 x, Q0 Oend;9 O+ k1 h, C Z c
end;
. v5 D9 i" x6 U V* v7 Q+ ?) }( G7 k, Q5 p% _( B
) W) X* Q( v$ e2 Q( B
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method, R0 X" W' i5 k9 g' M
is
9 v. e' R9 {5 T+ e1 D8 wdo
+ q" J. N7 N- w' r. Oif transporter.occupied and transporter.destination= Machine1 then. s7 s5 j8 Y9 }1 L* l8 p$ w
transporter.stop;
. Z! d2 ^" C3 A5 p3 f wait 30;
" h2 J$ L& X. {: P5 ] transporter.cont.move(Machine1);0 z; i# h6 i3 E; Y
transporter.destination:=VOID;+ p" q, L& }1 m; ]8 O3 h" d
Machine1.put:= Machine1.put+1;
% D' {# P+ s% e7 p- W$ g8 F* a transporter.continue;6 i7 s0 b9 @& G, z2 S- W- r9 T
end;
9 E4 _; ~ j. N, |8 E' R4 F& `- ?" Y0 ~" a3 k& Z
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
% ~* Q$ {# a# _3 K( M! v, G+ U; _. X( J9 c& {
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
; P+ A" `6 w% ] H _. W' T. ^! a, ]& M/ r$ B6 W
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?% w# M* {5 b6 Y; a* e# z6 B
6 c4 K1 e. y u2 h; T+ ~; n
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
2 ^3 p$ Y( n: n/ ~1 _/ b1 U1 ?! m2 |# G9 _* @
2 d% I" ~, H* p! b- u8 [( {- d% _! g! B, H( ~
% E! W& _! y1 [/ E; @( ~( ~
以上麻煩各位為我解答了,非常感謝!!!!!4 z$ b6 n; p M. t5 h* B. _
, g- W" |. `1 w g/ \# u4 j5 B
# r) \( n% b6 P; n7 L j) Q" a7 y$ h
9 z8 [8 l! m% W, W6 A3 t
|
|