|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
- v/ d& U& h6 i/ z
: Q# e- @! H' d3 }9 h/ R& b1 i0 M7 d各位前輩好
, b5 a1 r- [% V& [/ e# o4 c( H7 k我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
- [5 }1 C* [5 o6 ?* X' k% @我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。2 t; P$ x/ J/ a# J/ Y# B# ]7 {
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。& I0 y3 M# q- M+ q8 Z {9 J
我的問題如下:
- ?) ]7 X. \2 C3 ~1 h, w! P3 a/ |" V+ F
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
( w4 V* c+ O. [7 i$ l- C我目前想到的寫法如下:! n2 P1 B- m4 {6 M) J
(a)如果Machine1是搬運起點,放在Generator裡的Method
+ ^9 f! t* f. k3 S" Q, ^5 xis, A% n% M# u0 W' J/ s
do8 q& {- W: t2 ]1 v5 z6 @/ E" p
if Machine1.occupied and transporter.empty then: V! M) V# F* u' {3 G
if Machine1.out=1 then
1 I+ s3 h: t2 y& G5 L S2 E transporter.stop;% d k; ]% `# O& V
wait 30;8 |9 n) q* j+ R5 a
Machine1.cont.move(transporter);
" M' h* y2 ^7 b1 c# x transporter.destination:=Machine56;
' B1 h5 Y0 x' a' A; h4 P1 I Machine1.out:= Machine1.out+1;
0 R/ k6 [% I. J, c transporter.continue;( i8 K$ P! S0 G6 G% @, J
elseif Machine1.out=2 then
% S3 F1 G. ]0 P& e2 v% A8 t0 R. q transporter.stop;
( K3 O( N6 P6 i" S$ |) i wait 30;2 v. A- N- |2 N4 S: u
Machine1.cont.move(transporter);9 a' U4 B# [/ K
transporter.destination:=Machine76;+ K2 r5 m* A7 O2 {
Machine1.out:= Machine1.out+1;
% m* e9 E" ?4 _9 G R. D! ^ transporter.continue;
% I& [7 F7 G i! {' cend;
# O- v6 i- |0 S7 wend;3 ?% S L+ q& G* n. }
end;' x. ?4 O2 y2 G1 o# [
- y+ |, f% @) G d- O1 p1 ~/ p0 I8 Q r+ Q6 ^. g4 F# v8 Y
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
( F4 b8 W$ v% J) D# Qis
2 X: Q9 `/ O1 g9 a4 p" \do G+ ^6 ?# H; u, V6 X7 v; W
if transporter.occupied and transporter.destination= Machine1 then6 e& P6 Y, A6 v
transporter.stop;
4 M0 A0 c6 N& f% o9 O! U H wait 30;; [8 n c# W; \2 R+ x, u5 A
transporter.cont.move(Machine1);
; [$ c' o4 ^" r4 Z transporter.destination:=VOID;
. r$ C [1 B. \5 w Machine1.put:= Machine1.put+1;3 f( r$ r% A" i3 Y
transporter.continue;
+ b' t; K- y# j- e+ H& ?end;- a) N c: q1 t7 @1 m
, r& o5 Q; z8 U$ r3 h$ Z$ D2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?. k8 I9 g+ c& m# ?4 S4 B
( I, L- w4 G" i3 ]: j2 ]
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?7 a( @& e0 T9 p, i" L/ b
4 b+ H/ e" V7 B3 G6 Z2 X 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?+ |+ B; s8 X6 M2 }# m, K( j5 K0 d
4 v1 R8 H/ T5 a2 T' ^
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
& ~. j: k: ^5 A; J3 T9 O% J2 ]4 j, @4 `: [/ ?3 w
' Y& i5 {' B; f1 k
; [9 |: r d5 T8 v" X7 P3 b8 Q! B( b) C$ r
以上麻煩各位為我解答了,非常感謝!!!!!
6 l8 _( i; a% S, M6 v- |9 a& C' D; b" z2 i9 z
5 E& k; C7 W% L$ X
( u7 Z4 X" q1 [4 N8 d1 t
' o# U( \6 R/ M2 L3 y, m
|
|