|
|
5仿真币
想请版上的人帮我看看我这段code中的一个错误,我刚学Automod没多久,实在找不出错在什么地方了,谢谢1 b9 G0 d, L/ ?/ u4 G* ?/ ], H
: b: S2 A/ G6 q( O3 ?# k. t( x我的问题是,在每个P_pick的process中的while循环内,总显示错误Expecting QueuePtr or Location, but found PathPtr. 在我定义所有的attribute的时候,从来没有定义过任何QueuePtr or location or PathPtr,为什么会出现这种错误呢。 我这里面A_picks是一个30x1的array的load attribute,我想用A_i这个load attribute来读取这个array中的数值,不知道会不会有什么不妥。' e. k0 o& `6 t: W9 k% T
& X2 k5 f+ j9 U0 ybegin P_read arriving8 `" e' v3 J3 |7 M
while 1=1 do begin
. a/ C1 { f0 l d/ `! C read A_tote from "data.txt" with delimiter "\n"
* @, c! T& n6 W read A_time from "data.txt" with delimiter "\n"
$ S3 }1 e. A3 J% F$ E1 y read A_leave from "data.txt" with delimiter "\n"
1 p( ^" E O- D read A_picks from "data.txt" with delimiter "\n"
r9 q* E$ b% L- J: I2 c set load type to A_tote( s8 W( _3 M! y- \' Y
if A_tote="tote 1" then set A_induct to 1
# v" ?# ~) E/ x' y0 I g3 Q& W else if A_tote="tote 2" then set A_induct to 2
, ~3 h) v% D# m' P {! @# d else set A_induct to 3 % F$ C j; w" V3 J* m% \- V3 W
set A_i to 0+ ~. O# ?% H o- k
clone 1 load to P_induction
- b' V! e! _0 A% ]0 ^. C; b8 F wait for A_time sec' N( l: N5 X7 t
end
0 R4 O* b" @4 eend4 v: L$ D; r) R( K' h; l
" P- E: K3 i$ f% o) `) R5 G$ g) G8 G
begin P_induction arriving; i1 t; }- M0 s1 u
if A_induct=1 then clone 1 load to P_pick1" M: `1 W! }& a) o: B7 v
else if A_induct=2 then clone 1 load to P_pick2# z% x, ~- S% ?) n
else clone 1 load to P_pick3: A2 V% c$ i8 |1 L. Y6 y, T
end3 X g1 k6 d c" N D1 k
- ]; A+ O& e3 {2 t
begin P_pick1 arriving' d$ G& y; A% U) r V8 C. G
set A_i to 1
+ K' u% ?3 R# k! h' _# s2 ` move into Q_induct1" A8 M; z+ l" @) i# B
move into pickaisle.induct1$ I9 q, c1 }8 h e4 M3 Z; q
while A_i<=30 do begin
& C1 R* A$ S. a1 h, f travel to pickaisle.con(A_i)6 E1 J* F0 o& [
if A_picks(A_i)<5 then wait for 5*A_picks(A_i) sec/ j& r' \% v/ u+ ?
else wait for 10 sec
( c* l0 D* J, _& y, t5 B" ]( l; P L& @ if A_i=A_leave then send to die
" u1 S: K/ E6 W else inc A_i by 12 E6 W* c% U7 u |+ f( W
end
- H" ^& q% t1 s& K; U" @4 P. S( tend
' m6 D- B* G- y6 m8 w. ~: @' M/ X7 R
begin P_pick2 arriving9 N# R( u5 k! O) K9 U9 g
set A_i to 11
- K; H: w) C, F( u. d- K move into Q_induct2$ v, {' d$ y f' [) }4 g1 @
move into pickaisle.induct2, G1 D: l+ u( r. N5 m2 X2 r- X$ z
while A_i<=30 do begin# v1 z/ O( H& F
travel to pickaisle.con(A_i)( H5 S6 [; V' R% O! e
if A_picks(A_i)<5 then wait for 5*A_picks(A_i) sec/ g! ^2 w0 L1 K F) D2 a
else wait for 10 sec- w8 j( z# g- G
if A_i=A_leave then send to die
5 S. O# q4 Y: Z1 K' J else inc A_i by 1
& j9 v v, ~' @" r4 m. [ ~ end
4 I- H: E1 l3 d I% a0 _end8 u. g4 @1 }( @7 v: D# Y0 ` x
, T4 O5 F% i j1 @4 b; w6 ?' S; i9 jbegin P_pick3 arriving
& P- `$ P, }7 Y4 w& K set A_i to 21
9 Q) L. k. X+ q* j9 j8 m move into Q_induct3( v4 A6 O: A( h; d7 |
move into pickaisle.induct3- r3 g; K" Y9 v% ^
while A_i<=30 do begin
8 w0 w. ]0 c/ r7 W$ L2 H travel to pickaisle.con(A_i)
" s0 f& v1 @' }7 k' W5 X: { if A_picks(A_i)<5 then wait for 5*A_picks(A_i) sec4 _6 E$ w" e2 Z5 w; i
else wait for 10 sec# P5 t$ N8 _/ B) O( O$ F
if A_i=A_leave then send to die
) ]5 B3 A( q8 N3 f else inc A_i by 1
% `7 {; y. Y4 s0 `" c% W end& _& |( z6 K8 D* z& ?0 s3 a
end |
最佳答案
查看完整内容
pickaisle.induct1/2/3是个什么东东?
move into后面,应该是一个station或control point,或者Queue/Container/Vehicle/Segment之类的东西。看你的报错信息,这个induct是个path么?
AutoMod Editor的语法报错信息,有时候会指在下一行,必要的时候要把上下几行都看一下。
另外,你的几个P_pick是完全重复的,建议以如下方式修改,可以减少代码编写量:
1. 创建一个Process:名称为P_pick,number of Processes为3,其它按你的 ...
|