|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 3 |0 f: U1 _5 X9 B3 x' \3 k3 C
2 [9 t8 d. Q' T% `8 \1 x
各位前輩好' D. M9 b/ l( V# z
我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
3 T! H# I: n2 d我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
3 N. v4 I! f) S* O! r3 h我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。! V5 ^" o* |7 @! Z: {' H
我的問題如下:3 h- r9 f7 s6 h( O' T- `5 \
1 i* R5 a# L2 d5 g+ I! p9 d j1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?7 }* T# |8 `; d* X- [% Y. P4 N
我目前想到的寫法如下:
* V k+ O2 a4 N, ^ g8 l5 m! O1 y(a)如果Machine1是搬運起點,放在Generator裡的Method0 h- s M7 C- v- |) R% b% G& f/ C" P
is
/ _3 R2 `/ T% @8 z0 |" d( O' Vdo
5 d" n1 C' F; p5 sif Machine1.occupied and transporter.empty then
2 [: \3 I' `* G if Machine1.out=1 then
2 m) B F1 R6 @/ t* r transporter.stop;
' U) f- a. y" ]7 S6 y wait 30;1 q s( H" x( T& {' Y4 ^- a( `
Machine1.cont.move(transporter);
( F- r4 }% W* Z* { transporter.destination:=Machine56;
: @$ f, ~7 V% `0 S! H/ L; { Machine1.out:= Machine1.out+1;
4 U) k5 x" @2 ?% r+ M transporter.continue;+ t2 ^, i# m0 i
elseif Machine1.out=2 then C# {0 N% Z1 D X2 u* ~
transporter.stop;8 Z' u0 u4 A2 ]! `
wait 30;
$ ^8 R! Y, o$ K Machine1.cont.move(transporter);0 C8 c* K2 G3 C3 y) J
transporter.destination:=Machine76;
! F. W$ s. P2 ` Machine1.out:= Machine1.out+1;/ M3 `! L5 @8 J
transporter.continue;
! F; \! G' `% A" i/ P' F: pend;
7 o1 B. u M8 G q4 p8 ]' gend;
2 k3 H3 d! u0 T: H2 h' o' A3 ?end;% g* c2 w2 E) l6 v, E$ X
( f- i( P9 @7 Q1 n2 T' M$ c7 d# m
% X- S1 H o g S
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
4 ?5 J- t; u( e& H g/ gis* a. y; ~! y* ?/ m
do/ L" W5 g" K3 ^, w
if transporter.occupied and transporter.destination= Machine1 then- z* w- C1 _; r7 c9 v$ L2 U
transporter.stop;
; a" J! ^. H. j2 o6 F7 g7 c7 P: U wait 30;
- _/ }8 A) g s# V; I' Y# m transporter.cont.move(Machine1);
8 K, U3 g4 G4 Q/ E" l8 k2 O transporter.destination:=VOID;! R/ ]7 |2 S, T% T, U0 q/ G
Machine1.put:= Machine1.put+1;
4 W8 Z- J+ R+ r- t- G transporter.continue;
@, j7 f" k5 k2 ^! m0 Kend;* W8 e1 V- ]9 g m" o* D
1 @5 C% W `6 a5 I
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?9 O, F4 o. ^5 y! _: X& [
) `% w" j/ H. }# M s3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?+ Z# p Z% P0 X& h" Z
& ~' @9 D# \6 `* \/ R 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?9 m/ Q. l9 a1 X& {- k
& D/ q, g+ U# r: M, P
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?5 Z$ c$ v' L* a, b7 i+ M
, W/ z8 Q( O# F& ^4 ]* G$ o% H
) U) p; D: E/ N, P8 i! k
: i4 f! @ k1 h0 {7 S: S1 ]0 e1 E( x( H. _( ~# Q
以上麻煩各位為我解答了,非常感謝!!!!!
r9 G/ ?9 ]" ?4 S" g1 m c. E, u& w
9 D) ]2 Q1 i' n/ q
- e2 @0 m/ S1 r2 i+ k
! L, Q" }% x j! M/ o5 f9 ^ |
|