|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 " P5 e' q. `; w& l( ]2 N
+ k: k1 s0 e$ s8 s- R各位前輩好$ Z2 o" J" i0 i9 Q
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。( S2 o K- D. d/ |0 I% u* ?
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。- o2 L) d e g0 C% p, Q
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
! @- i$ j( j: X I6 P+ }我的問題如下:
# F7 P. ~) V3 K, I1 K# k/ u& r' U- w% d: D3 d2 t% w/ H: H( B/ y
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
* a6 ]8 ^1 _* I我目前想到的寫法如下:
4 i! j9 f7 o4 s9 x a5 X! V. @(a)如果Machine1是搬運起點,放在Generator裡的Method, H1 l9 ?: u- D
is
s& q. A! S3 j! Mdo; D$ ?3 _+ Y) C
if Machine1.occupied and transporter.empty then
$ S3 `2 n! i, b R" V if Machine1.out=1 then
7 W, _* m4 c B( j- [( o transporter.stop;+ U' |" S% n* r
wait 30;1 |+ o5 q7 Z( X, W! Q/ v7 k
Machine1.cont.move(transporter);5 X. y( z6 _0 \5 P/ R, U
transporter.destination:=Machine56;4 Z& G6 a- Z! |9 u9 T; ^
Machine1.out:= Machine1.out+1;
8 Q" d+ e* h' ~, U transporter.continue;
. D" |9 d* a, N3 R elseif Machine1.out=2 then
O8 Z U$ N9 e2 k transporter.stop;
5 i% E1 R- o, `0 Y& T wait 30;+ L( j) \, Z( a* }
Machine1.cont.move(transporter);
3 ~" F; p4 N, Z1 ~; Q2 C# e transporter.destination:=Machine76;
( v% ~0 N7 ^) T8 |4 Z1 W Machine1.out:= Machine1.out+1;
; e) P% @7 j$ m. n! ^; J8 v1 ^ transporter.continue;
& r9 ^- _" G9 U$ O3 `end;) ?1 d1 Q1 K j3 N$ x: B
end;& l* G8 h$ q, o4 J% k4 O
end;
5 N4 v( ?4 M5 o- Z: [3 a/ f7 z. C2 Q3 p* E
, k: J2 N( J/ }- p1 X. M
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method& n* s0 [9 W/ U4 R. @4 b
is% e; U# `+ n2 y8 N3 H) O" `
do
4 d3 n# S& ?# @ R& Z; P; Bif transporter.occupied and transporter.destination= Machine1 then
5 [! p g+ J/ i0 v( s) F; s transporter.stop;
+ m" I+ {7 i6 F$ ^$ j3 z3 Q) }& d wait 30;4 `/ }; c# H" Q! |% H+ I
transporter.cont.move(Machine1);& o# r. \0 P5 {& X
transporter.destination:=VOID;( j6 V9 S0 ?. b
Machine1.put:= Machine1.put+1;; D9 `, K2 [( v l, Q; m2 g; P
transporter.continue;5 n3 M! B8 S) ?6 H3 L7 Y( M! Q
end; B# F1 r( H$ P
. ~5 J3 @; W. L- a# ` I2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?; Y0 l/ Q7 `5 f2 J4 z
: o7 d, c# f8 f* S% j3 R, Y* |$ u3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?6 U( y j% u& s, A4 X1 D
+ }: K" P* R$ T6 O3 Q8 t8 A 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?1 w4 j5 ~; S& P# Y) {
" x5 U- C) c' N" h+ j, H4 l* X
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
: n" H- f$ E! ~# C) J, S3 B! F2 g& ^$ l
7 u. n: U, M* I: I8 E* F
9 p- D# L2 m6 H
9 {2 S% {8 O: ~ P以上麻煩各位為我解答了,非常感謝!!!!!0 i; v. Q; K& l* \2 ?" j' P' A7 H
* |9 d" U A1 O7 Z& O
" K- \' _+ l' Q' U J4 Y; f+ j' ~) ]( P: o2 ^' f( l9 a+ z5 u5 i
0 ]2 P7 M$ ]5 u( x( a: L! ]
|
|