|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 2 ?( w+ q( C9 x( r# }: x! ^
' }+ }7 W! n% e! T( Y" h! n8 S, [各位前輩好
! d5 q# K; L2 N% r' D: i我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
8 a3 Q$ o) M$ j我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。# K2 A; U. @- B; \% M. O
我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。( t* K( K& h* ^" c5 ]0 a
我的問題如下:7 e; _0 `+ i9 F, p6 s# g/ h9 K
% N6 Y: N" u3 o4 h- V( l! H
1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?2 U3 [/ Z' z# N, E0 }8 k
我目前想到的寫法如下:
/ ?1 M! }3 w: A4 x# H(a)如果Machine1是搬運起點,放在Generator裡的Method3 q9 P3 v- u& K# H8 [( a" g
is
$ T/ V* V8 f$ k% }* Ado1 F9 G2 y8 Y2 b! a/ ^, y/ Z! `
if Machine1.occupied and transporter.empty then1 b' c t1 { F( W
if Machine1.out=1 then
: b) i6 B: K+ V8 S; v6 Q/ q6 {' S transporter.stop;; E% A4 @, s @6 t7 i
wait 30;1 f( d; _; U4 {( O" ]" z
Machine1.cont.move(transporter);
. |$ U+ [; `+ [" {3 E8 v transporter.destination:=Machine56;
; U/ A' h' I/ V N! O) _! | Machine1.out:= Machine1.out+1;; R+ ~' N6 p5 c0 p; h2 ? u7 Y+ l
transporter.continue;6 n7 f5 f" G- L( z8 h. v; ?; Y
elseif Machine1.out=2 then
0 B0 m9 Q) l. L/ Y$ N% t. D* T transporter.stop;
( U4 f' M% g5 l) M wait 30;
; G8 J: O. g! N, _: t+ C Machine1.cont.move(transporter);# g& I3 C5 \9 o- z
transporter.destination:=Machine76;" U4 _3 ~1 C" _. B! T2 g/ [2 p
Machine1.out:= Machine1.out+1;; |: i& Z- p9 X6 ^ h
transporter.continue;% \. j$ W: b# U( M6 R2 S
end;& V" @1 p3 J! y7 T, F, P; V
end;
/ D. c1 i. q5 `: pend;
& ?8 z! y- |4 a( i7 X8 W# s/ {# r. N D2 m0 c( i9 T! ?9 V; Y. S
, L* u0 ^) x; B9 B
(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
& q* g" Z2 E8 @0 H% U% K5 y- mis
h: P: w, ~# h4 ^* X9 ?do
# N. n7 f7 }, L9 Fif transporter.occupied and transporter.destination= Machine1 then
, N4 }! a' T4 y# m* P. z transporter.stop;6 v% |* l Q/ ^ ~' G# ^
wait 30;8 }9 d" m3 m5 K0 R, Q
transporter.cont.move(Machine1);6 j! @/ N/ `; M0 _( z
transporter.destination:=VOID;
: _3 p3 M/ B, M2 ^, {* H Machine1.put:= Machine1.put+1;* n3 [& ?, _; J& T9 @/ v
transporter.continue;, B, _) Y- ^% _- ?
end;
) s0 O$ F; Y6 U, l2 ~; X& b5 a1 ]( w4 M- p
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
/ e4 K' Q: E: K9 t
. p2 M/ n2 N3 p; j0 M3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
8 q( H' b- }2 M! |$ |: c1 v
4 j, _: Z. B; l 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?. p& F* y" U5 G( j* S% ]
* f0 @4 j/ W* w) q6 |' U# T/ P4 K
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?
* z6 H" s' Z( A+ [( h8 ~. b' d/ W4 s# y7 C. Y" | P
2 g4 k, P+ a# [' F' R: l& _
: Z! t5 S" L4 f# {
+ e4 q' p. C, e) V$ i以上麻煩各位為我解答了,非常感謝!!!!!% ^' h! Y3 w- f; v
3 l( @% X2 [, W( z! i4 [' | l! h3 t4 @7 e
4 L# v, m6 _# M# e8 k- Q
$ B+ J# i3 y# `/ a |
|