pickaisle.induct1/2/3是个什么东东?( o' \" s1 Z0 [, U; K! @
move into后面,应该是一个station或control point,或者Queue/Container/Vehicle/Segment之类的东西。看你的报错信息,这个induct是个path么?/ r8 P; u1 o/ L7 Q( B Q
- C, g) E3 W9 Z, r
AutoMod Editor的语法报错信息,有时候会指在下一行,必要的时候要把上下几行都看一下。
: ]5 q+ @4 Y% \/ @
5 s! g# H$ v+ n$ G! S& d7 i- l另外,你的几个P_pick是完全重复的,建议以如下方式修改,可以减少代码编写量:* B- P7 d9 T5 Z/ _, _
1. 创建一个Process:名称为P_pick,number of Processes为3,其它按你的需要设置;删除那几个P_pick;; B1 s- O6 p- U& ~ y
2. 创建一个Queue:名称为Q_induct,number of Queues为3,其他按你的需要设置并放置;删除那几个Q_induct;# r4 p4 O$ i8 T! }$ U
3. 以如下方式改写P_induction和几个P_pick的arriving procedure的代码:( h+ B U9 C# ` E b
begin P_induction arriving# V% y3 b: ?$ s: o& C2 }
clone 1 load to P_pick(A_induct)( v" j. ? v: V
end最大的系
- D8 y' O( t0 y% |5 N: i
; u" a' T! E' d4 {+ d& ?6 g+ K. k* {begin P_pick arriving
5 c. N+ {; ^4 p0 @$ E- y: w; S set A_i to procindex * 10 + 1
, W2 v! V6 X) S/ }& q* H/ V move into Q_induct(procindex)
$ L: k* `" i3 @: Q& B3 a3 i move into pickaisle.induct(procindex)
/ I6 B* q7 Y7 i; S$ z /*check the type of pickaisle.induct(i), for your last problem.*/3 e' p8 g# I6 u. V- e9 ] X, w! A# t0 G& k
7 o: k7 }- Y1 p6 F+ ^% e7 e8 @! H; Z while A_i<=30 do begin2 x \2 \( J6 u- T j; B' T7 w
travel to pickaisle.con(A_i)
; `, ]* p8 _- c1 V if A_picks(A_i)<5 then wait for 5*A_picks(A_i) sec
) W3 {$ q. x, j* g: L. j* `; S" \ else wait for 10 sec8 P+ w: Q+ N h. p4 M
if A_i=A_leave then send to die! s' G/ ?( f7 T* X3 \8 S
else inc A_i by 1
6 |6 K, F! |/ m1 Y; I end! P" X% `' I6 P. _; @
end6 h2 t& L; J8 P7 n, l5 f0 c" H
; R7 w, U: o) V1 l) y A
其中的procindex为整形,代表当前process的序号。
' h/ h& C, r# O0 A: [* Ystation和control point只要以数字结尾,都可以直接用作数组。如pickaisle.induct(procindex),当procindex为1的时候,和pickaisle.induct1是等同的。 |