|
|
遇见一个难题,请教各位高手。& Y, K& I8 N" p* L
. t- B3 L- N+ F* W5 V使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。+ g% ~4 Y; @ y* h2 D& Z' z: k
0 v3 ]0 X+ j% F) m) j需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。 A' P$ B; s& C6 L0 l+ |
9 ?- s9 K1 @$ C* E* x' z is; v' G3 Y2 Q5 q% S& G' G5 f" y; i
i,m: integer; -- 整数变量
) D" O+ V# h5 m Name:string; -- 字符串变量
$ b! d( {+ G3 n9 Z4 G Obj:Object; -- 对象类型变量/ T5 x! w1 J; w: `3 w$ g' S
5 [: z" d; [, u, \! L& w6 F% G' d
do
* ~* g+ T6 ^: J2 b% J. [* U9 G9 w m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型8 G/ ]! j6 f+ X1 z. Z' ?9 b6 x
Name := sprint("BA", m); -- 生产线名称' C: i3 V8 K! p1 O& D* O
Obj := str_to_obj(Name); -- 转换成对象变量
/ t9 y; S- P. e$ T, {# Y
9 M3 [1 }8 q$ s( U y: J6 C FOR i:=1 to 100 LOOP
) l; z. o1 _5 r0 c9 W% n, Y' Z waituntil OBJ.occupied prio 1;
% @/ h& R' y: x OBJ.cont.move(@);
; b2 q" C9 x* J; O7 B: |; B 9 G) f" T" x7 v: \
NEXT;7 a" P9 ?4 X+ c; S: b
@.backwards:=false;
7 M4 ~9 X5 V$ v0 j/ s% Z9 ~end;: p3 @$ l* l# Q2 z, g5 Q
|
|