|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑
/ e o0 j! U0 z- E7 Y
6 M3 c6 x4 T; B1 d e2 t! G各位前輩好
% ~+ A! [, w3 I5 `5 {/ r' D我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
+ c2 Y- D5 D; \- J' E2 n我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。- t3 {" ?1 q7 U r( f& @3 ^* _
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。# d% p" H" {. B2 D0 \2 Y3 j
我的問題如下:
# r! D. t+ L$ r3 Z
* U& b6 H: ]* E- ]/ l) }1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
5 \" O* v( o) e% V; J) p% T. ]# g我目前想到的寫法如下:; M4 l# t1 _4 K4 q' A6 {3 D
(a)如果Machine1是搬運起點,放在Generator裡的Method9 v: r& [* S0 S: z+ P
is
0 P2 \) G2 e6 y" e' u0 pdo- M: M9 n# L0 S3 t
if Machine1.occupied and transporter.empty then9 _+ c" p, ^0 i% R6 h* ?
if Machine1.out=1 then/ g h2 ]9 \- z
transporter.stop;
, S+ c2 W2 @ {" `, R( W% c; Z( j# T wait 30;
5 m$ a% C2 E1 S6 I) M5 X: b Machine1.cont.move(transporter);
4 E$ ]& R) g. p( L9 `" G transporter.destination:=Machine56;6 ~- f, l7 z% O8 \
Machine1.out:= Machine1.out+1;
- {* ?2 d: t* x% {: V! n; t2 j transporter.continue;
1 ~, Z5 J" a* n z) |$ B0 A5 M8 n elseif Machine1.out=2 then+ P( w2 C, [. q9 H
transporter.stop;
& X, r- x D4 ` B wait 30;; R& ~! c8 \$ V# ^9 f/ Z
Machine1.cont.move(transporter);. u3 L6 C8 {) d5 e6 M1 Z! M
transporter.destination:=Machine76;- V5 [& m2 u! O- g. t/ a
Machine1.out:= Machine1.out+1;
$ c: t& `9 g- O l# w: M3 i/ U9 N transporter.continue;- K1 \: P4 O8 `0 ?1 C1 O
end;
- m1 W8 G+ S% j+ ]8 V; xend;& y) Y1 v$ H0 h" k$ b
end;
- N2 Q5 t$ c7 C' |/ O9 `. c4 c- S8 x# v% A2 j1 v% V) w& B; Y% C
/ o# y# ]4 R' [/ I+ E0 a(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method U' u& O: g, b4 p
is! w( I( m$ y! h6 p, O+ ~
do6 }# t3 S! v' q- i
if transporter.occupied and transporter.destination= Machine1 then
. L3 r9 L( K) @ v; z9 ? transporter.stop;
7 P. Y! |& d: H wait 30;8 a" t( u0 w7 r8 D+ m3 a# P6 Z
transporter.cont.move(Machine1);; Z. z T: P- f2 B" \' V, |# x
transporter.destination:=VOID;
* y2 N+ M, d' \- f# `. f* E/ q Machine1.put:= Machine1.put+1;
5 x9 S' |' q" F: ^ transporter.continue;$ `0 Q( T1 Y( Q0 w8 h* {
end;
6 X. S' J' t0 B H
* ?5 U- Q. f+ W2 c2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?3 O( @7 S" M1 b* {
1 i7 G! A) d" _6 V5 f8 \* B3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
/ ^$ e4 b T6 b- r3 Z; U; `0 v# o/ s5 P7 B9 ]2 r1 x
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?
; G) G/ o- ^' I l$ l, `9 C2 X2 q; {+ W8 @3 d5 P
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
0 D# U" I, ?+ F1 D( X: E
3 U0 c/ @% b0 x& t( _
( P8 o4 u1 Y% h& Y f+ k, T& S. p3 @4 G- x# I# `- t
M6 V$ n: c3 w5 i
以上麻煩各位為我解答了,非常感謝!!!!!* t9 H" _7 g6 X* M, |
7 U3 W8 j& q, h5 ~9 t
, c+ P9 z5 C: G6 R$ r& n) `% l; d6 R
J4 U5 Z& Q9 R& W7 ]
0 N, Y6 B! ^3 \+ X/ d3 X* ^ |
|