|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 6 P( C- \1 `$ B; c
& E; H* `/ p0 h4 S6 k9 ^2 |3 C各位前輩好: }" n% s: e8 U, m, q
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
. A& _& ?! p# i" N' @我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
4 M" c9 o" u* d% v0 l$ p8 h' f我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
% q5 m3 {# a" j# {4 e( S% W我的問題如下:% M9 l2 G2 `1 _: `6 R' g& ~& O
1 Y, {% E3 V6 e* L. S" l- s
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?+ p+ b# \8 m* |- D# }, t. Y
我目前想到的寫法如下:
+ {9 u7 U- Z5 Z, |. e' z3 l* l(a)如果Machine1是搬運起點,放在Generator裡的Method1 [; t B4 H4 N
is% I7 Y& F* t8 {# B
do" A5 c! Q& g r: j
if Machine1.occupied and transporter.empty then- v; _ h8 X* G% ]% `
if Machine1.out=1 then5 w0 P; j/ i+ J* ~6 |3 `: P& C
transporter.stop;
" Q% Z- N$ L4 r' h& n3 T wait 30;* i7 K9 X( N. g) W J6 \: f4 p2 V
Machine1.cont.move(transporter);" M; i& m5 N# C
transporter.destination:=Machine56;
% W3 U4 ?4 E: G$ f9 g8 h+ P" @ Machine1.out:= Machine1.out+1;
7 h% U6 {7 T' l, ~0 Y1 n* X- p transporter.continue;+ p: s& r/ h+ Q% L3 O' r2 y2 R
elseif Machine1.out=2 then
8 V* q3 \$ [- M* \: ^& T transporter.stop;4 N+ T1 n8 r2 L ?
wait 30;) ^' P% s" e' F) e
Machine1.cont.move(transporter);$ }' ?3 E1 M. i9 j4 M6 I; R1 W; [
transporter.destination:=Machine76;, x$ T* ]* y' j
Machine1.out:= Machine1.out+1;" x4 x6 E+ p8 Z" p( o R
transporter.continue;
4 m. r* O8 u' w: K- ]end;
* M% \/ C! u0 O1 oend;
" Y( D/ [. J0 M3 C! [- R. \! q$ s: Qend;2 p' j" {+ K0 q) F
2 i& f9 a+ J1 j8 d; C) p
( G( H9 U7 u( {/ P(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method) e$ z# N7 ~9 [3 T# K
is
, i9 ?) ]) V2 W. E2 V) q- ado
4 D$ G: I# q1 H: b2 Wif transporter.occupied and transporter.destination= Machine1 then: Q+ [* E" T! D* z* R, D: G! ~
transporter.stop; v# ~: e, |7 ?: Z
wait 30;6 X3 u9 w* r& m/ q0 m6 e U
transporter.cont.move(Machine1);
4 i2 P! m# G3 s3 g' {0 v transporter.destination:=VOID;2 [0 y O$ q" A
Machine1.put:= Machine1.put+1;' [3 i4 ]) P1 B$ D4 W
transporter.continue;
9 d; \/ {) P- Jend;
% z% m$ y% O4 ^) b% J1 e5 E7 k5 Q9 R& C3 L
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
5 b9 t4 K! \% f; Q( p: l# }$ h
" D$ r$ ^/ j" p$ E$ r, Q% k- z$ \3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?6 A) u" j9 X z2 t8 m! h4 ~
/ `, j# S/ C3 x. \4 ^ 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?* C0 \* e# B6 K! X, L
* E5 f5 f. n: A5 f6 m- F5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
9 q R1 @7 N; Q; W9 X; w7 O* O! {# c$ Q' C& Q
4 X1 l5 e* E6 H; K" e; R; o2 J1 G8 Q, Q1 K: o+ O
" M' T$ B& `2 |2 |6 e* _
以上麻煩各位為我解答了,非常感謝!!!!!+ O' m* r0 `/ I* c" p9 W+ \, U+ H
; m2 D5 [& |# R5 _. I5 ` |/ Q; I, T% y' V7 R
F: S$ a+ W, `5 _0 |( e
: V2 w1 P# ~' Q2 d' ~ |
|