|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 " l5 P h( P6 z9 Z2 z: {& t
$ X5 H; F* C8 l, R$ z3 X各位前輩好
# f( D3 }/ a: |) l我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。) b0 a! n5 S4 R7 i3 k, v
我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
; ]9 @, l7 Q$ `. Q) r/ n我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
9 v0 w; q. H! |2 S5 i: B# y- a! h/ l& o我的問題如下:2 C- c: n5 e+ J( A& V7 M
0 g" o+ ]! Y7 b5 c! j$ ?, ?# Z
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?- j' V$ [) |: f6 M9 i" i# q9 ^! n
我目前想到的寫法如下:# s D) g, x7 e, L9 u# @
(a)如果Machine1是搬運起點,放在Generator裡的Method+ \% f& N- Y7 @1 w- d
is0 s' r) I6 G! C& q6 v
do1 H: I9 u' R2 f% `5 B7 ^
if Machine1.occupied and transporter.empty then _. ^4 F: w1 A0 a$ t
if Machine1.out=1 then; @% T- F2 N5 @2 W! I, K% w
transporter.stop;# K3 Q9 f# u L/ W) P
wait 30;
/ Y5 w: i3 L6 p/ Z7 U5 x9 u/ q9 H Machine1.cont.move(transporter);1 c1 Q6 \, A8 r- n
transporter.destination:=Machine56;
3 s4 h- @% N/ s) k, u7 n# K/ t A Machine1.out:= Machine1.out+1;
7 D% o4 Y8 a/ s5 r( s transporter.continue;
) V; |0 F: ?: p% l6 W elseif Machine1.out=2 then
" [, i# C! C) d5 p4 e0 ? transporter.stop;
* l$ M* n+ n" h wait 30;; Y0 J' h/ x0 T: X. L
Machine1.cont.move(transporter);# _' I! m4 w1 `, M. H! m7 f
transporter.destination:=Machine76;# r7 {- q' H9 C! n
Machine1.out:= Machine1.out+1;
# @; a: X) W5 c1 C( p- w, [ transporter.continue;; m* R f, M+ L$ l B7 D: y" S$ S- W. [
end;( c1 E( Z% V9 R3 w6 i
end;
7 q6 _; N5 l2 h8 x+ N4 Xend;3 T8 o: k7 p; h6 ]8 [3 R
0 c( C' |7 E7 k1 |3 D+ z' T
/ r% q- x. |: n5 f& Z B(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
; g! l# D5 t$ i8 ~9 [" U' d- Qis
~8 ` _& q! R: jdo
" p% O. }8 O, ]! |, Iif transporter.occupied and transporter.destination= Machine1 then. X$ t8 W" t$ F/ B: W' X/ ?
transporter.stop;
6 z5 k: {$ p8 y; U wait 30;
r8 j- R" P* X" N t transporter.cont.move(Machine1);5 t" ?. Z3 @! k% R; Z5 V
transporter.destination:=VOID;
- w; q, T/ \# k# v Machine1.put:= Machine1.put+1; W/ R7 t/ k3 h( a. I+ M8 [
transporter.continue;
: \( i+ e g; C6 h ?% ^end;
0 N+ g" [+ ^+ H" D3 z0 ~6 g5 t. f' R- z0 \" _! P3 p2 A
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?1 E; a) M2 V+ P. Q
6 m- f2 Q0 T. K- T9 M8 h
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?* l$ Y/ R3 D& m. C' |: L' l
+ i, z; d& K2 q# Q6 C1 q 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
( V( P6 L x' L! B6 u4 c- T. y: Y1 A% J
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?" @6 U# h" z% A1 K, I. }
" W: \6 F, m% B: {! { v/ V
+ y# o5 j7 @, W1 S2 g q3 w/ I8 P# U2 g/ I" V; L
: Y$ D9 H& {! v6 W$ A; Z8 {
以上麻煩各位為我解答了,非常感謝!!!!!, P( \% C/ p$ i* h
5 Z. ?" Z$ h3 x# j( _5 e9 [6 n
6 {, R X5 `0 K o( v/ b# A! i
. v0 R1 A) K" r3 ?
b) y0 K( p7 _) w |
|