|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 5 D* J5 ?2 A. E. F ^3 E
( V+ P+ v- m" N' ?$ P5 ^
各位前輩好
+ U: D- {$ M* Z) m我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
, N9 J0 z, e @: Z( s* D我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
1 p- w+ Y1 p" N H3 y我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。
' q' `9 B5 D2 q( | I我的問題如下:% Y, a+ @6 o; V# K) Q
6 m* w( e* Z9 ?. P
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?' [' J D: D) p- t
我目前想到的寫法如下:4 c- d5 v7 o. a- A! ^1 v
(a)如果Machine1是搬運起點,放在Generator裡的Method
' W: x+ j" n$ r- Iis
$ x/ z. p2 i# t- F8 S o& |# B/ S/ ldo
! d: K0 m9 E6 ]+ ]6 ^if Machine1.occupied and transporter.empty then
, ]; k% d4 J" _/ N" N4 | if Machine1.out=1 then
" [. `, Z/ W+ b transporter.stop;
. Q1 }* }- n* f( Y8 U, Y1 L) o wait 30;
$ n- v- ~$ Z Y Machine1.cont.move(transporter);
; ?- \ l. N# @! x# t4 P transporter.destination:=Machine56;
7 O1 b4 H4 E' L6 S Machine1.out:= Machine1.out+1; X& o, f+ O( R, m# L
transporter.continue;
' v0 l: m. V7 C: C& ?6 ` elseif Machine1.out=2 then
* l0 Q* M: \. Q! r) ~- N- A! O transporter.stop;) S9 V/ e2 K* d! a6 S" a
wait 30;6 [- Z: ?8 @( S- t
Machine1.cont.move(transporter);0 p6 s1 J% r. J. d
transporter.destination:=Machine76;
4 B1 k4 z& y3 V. V3 s; D Machine1.out:= Machine1.out+1;
" O" Z2 W$ W+ ^ transporter.continue;
3 P0 v" i2 z; F% aend;
1 H: N/ w2 B. c, V! Yend;
" }) T/ n5 J% L+ ?3 \) bend;; Z+ z) f5 Z# B; s# h$ S
& X3 |7 \1 L, W U+ G4 [
7 Y% K$ y4 A+ O$ \! k) y) m
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
/ I7 `. M. K5 \* I$ C! Pis3 ^' @0 p c, H+ i
do a% v* a8 \2 G K# f& u2 i1 G
if transporter.occupied and transporter.destination= Machine1 then' g3 O% ~4 L1 C% V
transporter.stop;
& U8 X4 l) U, m8 z1 r" H, L2 s wait 30;
& X3 J- g# w# x; i* [+ M2 u+ [ transporter.cont.move(Machine1);: K( ~9 \* E1 |, i; Q
transporter.destination:=VOID;
: ]$ q7 K: ^$ j. j Machine1.put:= Machine1.put+1;+ c- g, s! h }- ~$ e# _
transporter.continue; |- j1 b* I5 {6 E8 b- n2 W
end;$ A _* l7 V# R) D2 |4 [5 D) U; ~
% H+ B- r9 y# f0 i2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
. X, }3 A7 s, j' c- u3 b! \# N; T$ E2 X, i
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?# y( t |5 a, C
" s/ s" b. l- e0 ?8 ]/ w
4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?1 L+ u- \1 S; w c
. i5 p8 r6 p* \: p5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
0 l3 j4 t0 q0 q) H+ U! {3 T$ n0 O
9 W' u6 J2 n- b, m& [8 Z% R5 q0 }! j3 }% R1 l
/ ~5 N; q$ E. Z; d5 E
0 ^; n, j" h C% p7 R6 r, c
以上麻煩各位為我解答了,非常感謝!!!!!
9 v* D Z" y v
( X& B( T0 ^8 Z& y+ w+ E7 n9 Y0 N9 {: V3 k0 ` X6 c b; K
h$ _- z Y; R2 H; ]
' C+ D% S0 F7 j2 o! ]& i- m |
|