|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 1 J- K+ o" u+ H. B5 h" o% |
+ L" K* V! z% `7 |3 F* Z
各位前輩好
; T8 h& L4 v, \# H我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
. i3 E0 q1 r: f. F' K我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
3 j9 n; o1 w y% N% P) i我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。3 e8 M! v" v( S# r ]
我的問題如下:0 S; v4 ~7 P' M
1 m+ O, Z: H9 B4 `# F5 B
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?: E4 } T. e7 z! I# z
我目前想到的寫法如下:& M, P. @$ ?1 b+ t7 M5 @5 z
(a)如果Machine1是搬運起點,放在Generator裡的Method1 b$ w0 w/ r- C4 a$ U) i
is4 v; t! w- a! @
do0 Q! |# D/ S) q; M0 l
if Machine1.occupied and transporter.empty then
5 S$ h. U% j8 T2 b$ O& u6 v/ B if Machine1.out=1 then+ q/ q$ m! G: z& D4 a g+ R
transporter.stop;8 I9 d7 w4 P, y/ M4 j
wait 30;
1 L# s n1 d1 I3 R- {4 }% a# { Machine1.cont.move(transporter);/ X+ }- [ K; [% S J' v/ [
transporter.destination:=Machine56;2 \' w- P, {2 a. o6 ~' |; y1 G
Machine1.out:= Machine1.out+1;
! b8 V+ v0 E# V2 }; n+ _% B transporter.continue;
; R j9 p: T% ?) q* O& ~ elseif Machine1.out=2 then
# c2 @- C& i9 M/ I- ]) R7 F( r7 }* E transporter.stop;4 m) R9 \/ T; Z; M
wait 30;
" w! W: t% a4 K: @: g5 R& c Machine1.cont.move(transporter);
# |4 c" Q9 _2 y# C transporter.destination:=Machine76;6 i. Z+ Z2 T# }" R
Machine1.out:= Machine1.out+1;7 o) @0 L' @# c2 z/ N5 I/ M& g
transporter.continue;
# Y' _) A3 ^6 O% [! H/ v3 _! _: l \end;
3 t2 n) `) ?' ~1 y: Iend;
* [' c' t) [6 c; C% K' P4 Tend;+ `% J" Q$ h5 q4 `5 l: x
+ o& v: v7 S6 T& t$ O9 X+ \0 ?3 }8 b* w7 l6 e
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
* Z/ f% ^( y- Jis
4 N! I- m" M A% m2 H. C% ado
: m6 V) I# O! [: H, ]' {if transporter.occupied and transporter.destination= Machine1 then% b% g' G1 L0 |. G# H
transporter.stop;
1 ~: g$ |3 J7 v+ c+ Z- A- [2 ~4 s wait 30;% G* n( D3 h' Z; Z; P" ~; E
transporter.cont.move(Machine1);7 f/ [/ h& {6 G6 R4 m
transporter.destination:=VOID;
' `' T4 ^: b5 B m5 W Machine1.put:= Machine1.put+1;$ I) i; |9 ?" n$ Q
transporter.continue;
+ @/ D, x# e" E" V% Q. I# Cend;8 |% `) R* D8 L( R; i; _
$ ?; F6 w6 w X1 C! P" _2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
1 c+ G U7 J! B
( ]8 C/ y% w; z- d3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
! U/ M# ]. v1 @) [7 z& [5 s! k7 m: ?' E: D/ W
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?6 L% U ]$ C3 U8 J1 N" l- `
' [8 @, e3 ?/ A3 K0 O3 Z [9 u5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?* l6 Y8 J, y- ^' f2 x9 i3 S2 a
2 L ^ Z; [8 e- V
8 U9 b; ?1 F! t3 f- Q! O; g
. P% Z2 P9 L9 h1 g* m3 F" a% ]4 S6 K+ f; B2 `: R) J: N0 k9 j; H Q
以上麻煩各位為我解答了,非常感謝!!!!!% \0 H% c2 Y4 _; f
7 K3 \0 k( f. N2 s# P7 V8 x6 x' X& Z" W. C0 [
8 F% `. r. r& @0 P4 t$ h" w4 M4 U$ w; i( ^! ?9 a9 L
|
|