|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
5 D/ c7 t! y% }$ |5 E
4 C I! v6 Z q/ _8 |7 H- T各位前輩好
5 P/ Y% o# q- Z2 ]# f我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。$ L0 V. F, s9 i; l0 s
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
% U2 I0 p) I2 j; E3 y我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。4 z- V- {$ O/ q, J- f/ J$ k. F2 U
我的問題如下:
/ Y* S+ L3 E- L; X$ Q$ W, d. B* f. } R, G
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
6 K# }& ^4 j0 y9 C. U; U9 O# ~ _2 B我目前想到的寫法如下:
\/ B* G5 b* R! p(a)如果Machine1是搬運起點,放在Generator裡的Method4 M5 M! |5 L, f
is0 c0 k8 m" H0 l2 {- r h& J% g* x
do
" G- K0 n {& s# L# A! ?& }1 Gif Machine1.occupied and transporter.empty then
5 I# ^0 ~; O. B, m% O2 @- N- M if Machine1.out=1 then
( l8 ^* \( m$ H* X5 Y( B transporter.stop;
8 `9 N# O8 l) u5 r wait 30;
: ^* i8 J" c' p) l0 D4 } Machine1.cont.move(transporter);
/ T; s3 n! M' u% s# t! A, y transporter.destination:=Machine56;
& C2 i% v! T9 \+ T4 `7 H9 a% i Machine1.out:= Machine1.out+1;
( q! i$ {4 _$ v transporter.continue;
Z4 c& z0 d6 [& o! I elseif Machine1.out=2 then7 q! I7 V4 A8 e: p* x
transporter.stop;1 P: p' {) e; O$ l' a
wait 30;
3 G, a' [+ U+ C, h Machine1.cont.move(transporter);
+ V/ j F" m1 V- l transporter.destination:=Machine76;
% H; {1 X/ o! p/ |6 e3 a Machine1.out:= Machine1.out+1;5 }/ h) i: z( _8 ]6 P
transporter.continue;2 M$ F! {$ m7 Q7 a& \4 I [4 k
end;
8 _+ ]! ]1 I0 Y O) x9 j' U1 yend;9 K, j" u% L' P
end;) F' F. \- v2 Z' s- t2 F1 K
$ S7 i6 s/ s2 e5 d5 S
' W6 t4 w" Q3 e9 ?. t& j" e(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method. `( S% M+ R$ C) G. @
is
( l( ^4 e1 ]2 S" Z* C6 ^. m; Xdo
" C: n* G! R; O# Mif transporter.occupied and transporter.destination= Machine1 then) R2 u$ z$ y) p9 O% z
transporter.stop;
1 |$ s- ~$ W( X+ X5 ?9 b- c wait 30;( l- y$ g, Y) y9 I5 |
transporter.cont.move(Machine1);) \- w2 O" j# B0 D B
transporter.destination:=VOID;4 M7 T4 x$ Z& }* V$ I: O
Machine1.put:= Machine1.put+1;) k, g7 Z) V1 \- @" D7 Z
transporter.continue;8 w7 n- X) e) m/ D
end;9 H/ d5 F: w2 e2 U2 E
( g7 V; U8 g) @5 V% y1 m1 ^3 ^; N2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?1 P, u0 G; W( V4 I g2 K3 `& _$ Q
0 `: x8 i5 z# X1 a% m! ?
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?- _7 {% g* y# D9 @& W0 b. v
! |- `7 D* q8 f6 E2 ]
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?4 W5 O/ I% U( @- ]7 R6 i3 c
4 f; o; N: c4 E$ T: \5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?6 N3 h1 A! y5 B
t) \7 N$ I+ K! n
# |5 r5 Z. ]# U$ w8 b. N5 N1 t; S9 A7 @$ t$ V
* ^' _, O* [* ?6 {' W+ E) H
以上麻煩各位為我解答了,非常感謝!!!!!2 Y; g4 {5 e" Y4 A
: I: E) S: y, D. `3 z! F' m
" W' `- @6 e! s" W3 U6 ?5 h7 {
* C! C) O( {( }0 y" y3 n+ @3 Y# X( W/ D0 D& w
|
|