|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 # e8 ]' {& \1 }5 {; f' C& F
2 x' f; E. Q h) \: N4 C
各位前輩好
1 @2 x! t8 v; A: H! k我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
3 S, T' i. N$ n& @我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
^$ N3 f7 ]2 O* v我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。5 i: `" g- J2 C5 f% x" [
我的問題如下:
( a+ B2 y0 ?3 \2 y [# Y8 P2 X9 N% g
/ _& N( Q4 \% H$ |( @1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
" O+ I" q9 _# D" q0 |0 ?0 p7 s2 j! s我目前想到的寫法如下:- |: _2 P5 u0 U' |. ]
(a)如果Machine1是搬運起點,放在Generator裡的Method
8 W7 w% y) @ X! G$ Mis! S! V+ H( @, ]2 n% y" n
do
( V4 C/ F. R0 b+ |- \if Machine1.occupied and transporter.empty then
0 n8 J) J$ S& G' h' [ if Machine1.out=1 then
" X6 Q, r+ H0 K transporter.stop;" h% g8 M; d' j& X/ S& R, I
wait 30;' m6 \ H$ g% ?5 P( X& K% v: h
Machine1.cont.move(transporter);
" ~9 G( k' r/ t0 N, a transporter.destination:=Machine56;0 L) V9 l4 l0 T( Q
Machine1.out:= Machine1.out+1;
0 F5 d5 M1 F. u6 s9 y transporter.continue;
3 @( H, }- @! c3 B: b) i D: t; z0 L elseif Machine1.out=2 then
$ K* a- e6 A% m1 o transporter.stop;- L5 ~# i% Q0 C+ l; ]
wait 30;
4 P- ^) I0 i4 U& y Machine1.cont.move(transporter);
" o2 D: ]# m2 S transporter.destination:=Machine76;
' K% V" p1 [/ Z$ C: V( o0 |: b Machine1.out:= Machine1.out+1;
% w( I6 e8 ]: e3 S, X5 l% A. Y transporter.continue;
0 b- b# w+ j8 v$ ?- q8 J1 Kend;+ g; \$ x; [/ e; L( K; P+ v+ |
end;
. u! {" q# J! f. C0 a7 i% Oend;* @* a) R& t) |7 |: S/ n
, G; D3 b! V4 W' ]5 N8 L/ [
4 j) A3 k, O3 ? E. M(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method! v8 J1 A) O+ f+ D* a2 e, R
is
! h4 u# }4 d( L7 b2 Ddo
% ]$ G, G1 ?4 x- ^$ A, Hif transporter.occupied and transporter.destination= Machine1 then
2 w: a. T: A/ D& ]: ]1 ^ transporter.stop;
% [! l1 R3 G1 U2 W5 ]8 W4 i wait 30;3 \7 Q' K3 h) H- {
transporter.cont.move(Machine1);
+ V2 N3 e L) _& X transporter.destination:=VOID;
- Z! b# W: v8 \. l. K9 C9 X6 R. F* n Machine1.put:= Machine1.put+1;
6 e1 j% p1 k# v" ^8 X transporter.continue;
* d4 b% b% w& }% ~0 z5 rend;- b) m+ G+ |3 t
4 M" r( L5 ]" k2 x% N
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
! Z4 D; ^, J x8 Q' v7 {* D. H1 p/ t1 J( P9 Z0 q
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
3 ^0 X/ L/ U$ N }; m; z% `) v' f* F9 t# ^7 y
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?" u! `! u& ]; n6 e9 s/ O# H5 r
! R! n3 p$ V' D/ L. r" r
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
+ ^! j5 Z$ D c8 N* c% E. O
, A- d! ]+ w) P3 G
1 g, ? ^# N% i$ ^6 {
+ Y% I1 ~7 I$ m) g! N" ^' Q4 Z O6 O& s N$ u/ P' @
以上麻煩各位為我解答了,非常感謝!!!!!
3 o4 L- n( I" a; z; T2 S$ `- p( k* [* J5 t( d; i6 z
/ q$ G( X# g: F/ e; ?3 i, x# B, g! D9 P+ k
) B% |6 `9 v* R, Z, ^4 a
|
|