|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
4 m9 Y# V/ s7 w+ d& B
# {% f z+ t# {; r各位前輩好
, L0 I" K' q6 { a1 ~6 B我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。; [, u8 W& z6 }2 I9 C+ @1 Q! @$ }. x
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
& V5 b$ ?; d7 a6 e% W0 Z" P+ }我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
+ T; ]7 X# u; [2 T1 M5 O$ ~我的問題如下:* p' z& g) D& F8 A' z' B7 U) R; S" a
& d/ T# T! F! l6 ?1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
* Y6 y* v4 R/ Y. |我目前想到的寫法如下:
( a# l8 e1 ^! {(a)如果Machine1是搬運起點,放在Generator裡的Method
! E0 u3 c. R4 V* a1 w& o; {is' u8 u) |/ l5 K8 L+ }0 V' {
do
% \7 `, m1 l: n: mif Machine1.occupied and transporter.empty then
8 g/ t8 g0 G" l6 ?/ i7 \+ Q( {& S6 t) A if Machine1.out=1 then) P5 e$ U8 u6 R
transporter.stop;
9 J$ L; B1 D1 E" i, F0 p6 V wait 30;
4 d! F8 ?) a& U ^& ] Machine1.cont.move(transporter);/ s5 D* X7 ^* Y( Y
transporter.destination:=Machine56; g3 W- e2 s" f" k l- r3 P
Machine1.out:= Machine1.out+1;. U5 T' n+ S e7 W% i
transporter.continue;
+ F' h. _1 D( C6 p8 `6 K# y elseif Machine1.out=2 then
& Q% i# a% s# h transporter.stop;
5 D. u( o- q! C0 g) Q* ], t- O! J wait 30;. [! @1 G( s' l; Y K4 h
Machine1.cont.move(transporter);. L5 y Y0 ~$ R) F
transporter.destination:=Machine76;
2 N; z( O- x) Y" u Machine1.out:= Machine1.out+1;
7 C' ]5 m+ h4 e7 v; b6 |9 c. @ transporter.continue;6 E0 @/ ~! k7 Q7 L& q7 x
end;
1 M% A: t0 a% z' ~3 fend;/ u+ P# t3 G# C4 S/ d1 K" [
end;& q$ g! b$ `+ {* l3 d; l
7 G# @! r3 O' \# l6 H8 R I0 t2 b/ d1 g4 \- O
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method5 A' p7 n3 y }* ^5 R
is0 M( L& S7 `0 u9 F5 q% P4 [) h) j5 `
do
4 A- j: B1 t+ @6 X. i3 sif transporter.occupied and transporter.destination= Machine1 then
+ `+ m7 q, `8 v5 ?7 l transporter.stop;
M" x7 \5 I; A7 g6 Q3 { wait 30;
4 y5 K# R6 w, J- f; j9 H1 B; _ transporter.cont.move(Machine1);
& H5 E. s6 M' ?+ E: y transporter.destination:=VOID;
# B g! R# Z* V Machine1.put:= Machine1.put+1;
' e' f( `8 b8 \( z transporter.continue;) }; e/ A$ y/ F" ]( o
end;( Y! B" E# B+ R! Z
* K1 N" O% L1 b5 G& z' o/ I2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?# F, J) @# `$ M; O$ M
) Z; P0 J1 D' `- C
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?1 H2 \1 S: E# ^5 v
% f6 A0 K( S$ `) O 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?; D9 h' O: N* n" o6 B, _' W
/ l. M9 ]/ Q' L3 ?( M5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
5 ?1 H' S; X+ f5 f0 I* ?" v- Y& L- n: J, N1 [& k2 c# _
% X7 s+ _# Q0 K# l9 ~) x5 q
: l) K- E5 A, L; e& T8 b+ c1 J4 v
& K/ V. h, G: N" R* _* W以上麻煩各位為我解答了,非常感謝!!!!!
, L# S: F# D% y t! ^( h' z
4 ~# ~) p& o+ H/ K; r I3 f- d* i- D3 E8 x* n6 w+ r0 E
; V) c4 z2 `* N" @( N% I1 V1 {: c5 b9 L& q+ s% s/ `- n6 q$ w: x
|
|