|
|
本帖最后由 qqball0908 于 2010-8-7 13:58 编辑 ! @' z: [% ]+ ~- U: y. x
+ A. t% r2 `, \5 y; C
各位前輩好
* e9 |5 H. |( W7 a- _: Z. ~, A9 ^1 L我是eM-Plant的新手,目前因為研究而需要建一個半導體廠搬運系統的model,有一些問題想向各位請教。
* |$ v( d# C8 z7 _# @我目前有上萬筆(一天的量)車子搬運的起點至終點的資料,我需要將這些資料全部輸入到我的model裡,目的是要研究這一天當中哪條路容易塞車。
0 _+ m% H% o- C, [1 f: j5 H9 ]我將資料進行換算,例如從A點至B點的搬運次數有3次,我就以一天24小時除以3,也就是每6小時發出一個搬運需求。在沒有搬運需求時車子會在軌道中隨便繞行,等到一有搬運需求,離該搬運需求最近的車子便要過去搬運。3 J5 O6 @6 m5 k6 g- Z6 q
我的問題如下:( M( l: X7 M1 S7 p" Y2 ?4 k+ Z# [
6 a# W3 t/ O4 ?7 q& h" Q1.關於資料輸入的方面,起點的搬運時間與地點我是用Generator的物件與Method控制,終點則是用track裡的sensor控制,但上萬筆資料這樣要輸入好久,想請問各位前輩有沒有其他更好的辦法呢?
& z8 Y0 E4 E" t' I3 @8 F+ k2 d我目前想到的寫法如下:
2 _4 w# N+ X& S* O6 {' Z# u(a)如果Machine1是搬運起點,放在Generator裡的Method
9 Z' Z; l9 V0 His8 G6 m$ W, b) f f# j3 e, U4 r
do8 E6 T6 O/ f) ~. o$ T% O
if Machine1.occupied and transporter.empty then9 j3 K& i0 h3 R0 S& S
if Machine1.out=1 then
! N! a. w6 g2 ? transporter.stop;! T' K# {1 t" V* a, M8 g3 k# M
wait 30;
5 t$ h% Y1 J* T% _ Machine1.cont.move(transporter);
- Y P9 |5 ^. n; e transporter.destination:=Machine56;0 r8 u+ e ^% H; \9 k' r
Machine1.out:= Machine1.out+1;
D: J* a" y$ }4 E$ c; B$ E transporter.continue;; X+ B% E6 b3 Y) ?7 b( g4 Y
elseif Machine1.out=2 then3 j" u5 J. f/ D) i
transporter.stop;
- Q4 C* v: {6 g4 y4 v7 u: t3 g wait 30;) x3 m7 ~1 X$ |3 F! ]6 c
Machine1.cont.move(transporter);
. z3 W# O+ G/ s2 j# l! y& ~ transporter.destination:=Machine76;
) ~+ i! X3 i" x9 x$ w Machine1.out:= Machine1.out+1;
3 x) I9 t7 H. p3 S1 }2 c transporter.continue;
: H9 }4 ~9 X, p( r4 oend;2 J. Q9 B" _6 m4 m; @7 s
end;
6 z5 V2 [, H1 ?+ }1 l4 Eend;
9 _0 ?' V' h4 H# n) R2 [. K6 x8 M
& c- r1 t4 S3 X* r8 h8 B. N9 j- p7 A
]) b( @: H* `(a) 如果Machine1是搬運終點,放在track的Sensor裡的Method
1 R s- b$ V% ]3 e0 r& w q/ V2 T4 Sis
6 B8 I6 E7 S) m/ F! \do/ m7 _3 J! R; d! {
if transporter.occupied and transporter.destination= Machine1 then4 X8 d# ], H; ~/ g
transporter.stop;0 W; f* i, h$ F* _8 Y' k5 i
wait 30;
y; [) Q" |# b/ d2 k. U* H8 R transporter.cont.move(Machine1);, \) J- g& T7 k' [! w
transporter.destination:=VOID;3 A+ r/ |* v+ c' m* t7 l/ r
Machine1.put:= Machine1.put+1;4 f9 t# n" t$ y* \
transporter.continue;
: I5 F9 i* g5 H5 s7 [- Y0 f3 Zend;
( v& C0 W& e- y+ E/ X1 D% U$ b: K2 l
2.當有搬運需求發出時,如何去找系統中離該搬運需求最近且有空的車子?
% z; J6 {# z0 o$ t, k; T* N& j2 j P' A+ ?, X- y
3.請問該如何讓車子在起點至終點的路途中車速從0開始漸增至最大速度,然後快到終點時再慢慢減到0呢?
/ \9 w3 K7 S' R- i' [6 l+ S3 \ W
- x* G& J: _$ H 4.我想讓車子搬運的路徑是走「最短路徑」,我使用transporter.destination:=xxxxx,讓車子知道他該去的目的地,但沒辦法使它走最短路徑,請問這該如何處理呢?+ R' M0 E: W/ Q4 D/ v8 x0 O7 L# _
, x$ d; s u$ B% C0 X
5.當有兩台車同時到十字路口時,一台有搬運東西,一台沒有,如何讓沒有搬運東西的車停下來,讓有搬東西的車先通過後再繼續前進呢?/ o# n# A% K5 u" v1 N; D1 \
8 X3 ~9 E1 g- Q, e
3 M* D4 i, K0 \9 v2 R; E: g' e! P1 p" p
$ k" |$ Q. L' O. I( c/ a) w& J+ j! a/ v以上麻煩各位為我解答了,非常感謝!!!!!% G! }& [ L0 {8 ~6 k( s0 h B* q' ~
/ B( b/ E( N/ U. K
- f/ E; i Z5 c* l$ y+ b
* N- X1 ~; v ?1 X1 I" p
! D& `; u9 c$ b5 Y: g |
|