pickaisle.induct1/2/3是个什么东东?
]! V2 Q; G4 ^. umove into后面,应该是一个station或control point,或者Queue/Container/Vehicle/Segment之类的东西。看你的报错信息,这个induct是个path么?0 ^( {$ Q3 m$ K$ t
8 ]6 n, @! l- T# Y3 ]1 O$ ]1 ?5 B9 MAutoMod Editor的语法报错信息,有时候会指在下一行,必要的时候要把上下几行都看一下。
. r7 R8 k' T1 K6 }5 j' X8 @! ]# O; r
另外,你的几个P_pick是完全重复的,建议以如下方式修改,可以减少代码编写量:
9 C* l! p* T1 ?; _0 h1. 创建一个Process:名称为P_pick,number of Processes为3,其它按你的需要设置;删除那几个P_pick;
6 @ _7 h% x/ m% Q# K% u. `2. 创建一个Queue:名称为Q_induct,number of Queues为3,其他按你的需要设置并放置;删除那几个Q_induct;3 n9 Y5 l( z! H/ D% @
3. 以如下方式改写P_induction和几个P_pick的arriving procedure的代码:
6 H) ]5 g' o3 D! J+ }; J! lbegin P_induction arriving
: p/ p J0 e: \+ H9 v9 a clone 1 load to P_pick(A_induct)
; J; [- r- g$ E) ^) ]end最大的系. F7 B% g n) V6 q& e) f
4 D6 Q+ G7 z( N: }: u6 @
begin P_pick arriving3 u* |: @: b, P& U, I) ~% b
set A_i to procindex * 10 + 1, h- ^! e2 ^. \
move into Q_induct(procindex)9 z3 p! L a; C8 g
move into pickaisle.induct(procindex)3 f8 p; f" G- u, g, Z
/*check the type of pickaisle.induct(i), for your last problem.*/* A8 R; @: l c9 u, [
?6 I$ B# ^/ D4 \, w+ }9 U
while A_i<=30 do begin
; ^1 l9 J0 i+ S# D9 s# s; t4 { travel to pickaisle.con(A_i)
y2 D, q6 V, S" Q2 B5 x, Z7 V if A_picks(A_i)<5 then wait for 5*A_picks(A_i) sec
/ F+ f2 g( Q6 G& k8 n else wait for 10 sec
3 y& _5 y# j& ~4 R if A_i=A_leave then send to die
; ?. T7 v+ c# ` else inc A_i by 1! T. q6 z# ?: a) J
end+ N6 B+ Q+ v+ H5 M+ a( ^
end* X' V# j7 U$ \
6 b5 \8 J0 ^! \ w, P6 K8 g& X其中的procindex为整形,代表当前process的序号。
& R" ~$ _7 \+ P |. ]) tstation和control point只要以数字结尾,都可以直接用作数组。如pickaisle.induct(procindex),当procindex为1的时候,和pickaisle.induct1是等同的。 |