|
|
遇见一个难题,请教各位高手。
# [: q* s. Y& _% ^, U. N
9 g- m8 [! u! W使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。3 v" l0 {5 t& O/ b$ b, l
: y3 L( v" d! {! d+ l需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。2 `6 L4 k4 L; Z& E1 J m+ j
& |0 Q* l/ w2 \/ n' L8 E$ A is4 N1 V. C' z$ O' A6 x5 h
i,m: integer; -- 整数变量
2 [" g2 z7 K9 ]( G8 o( |6 S- ?8 R$ d Name:string; -- 字符串变量
% t5 r& i6 g* J+ D Obj:Object; -- 对象类型变量
5 E ]0 K, k# ^, J
S! a1 ~$ r/ }do: ~7 X0 W9 C" }2 q$ x; m4 q$ ~
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
& P9 T, H0 m/ S Name := sprint("BA", m); -- 生产线名称
7 ~0 i3 B9 E7 m Obj := str_to_obj(Name); -- 转换成对象变量
. _& c" s, [, U3 I+ k1 D1 h
! P( ]8 w, X% L3 ^ FOR i:=1 to 100 LOOP
) u6 u& {" Q5 N' ^7 X* Q0 v waituntil OBJ.occupied prio 1;
& A0 M/ Q9 `4 {0 H% L" c. N OBJ.cont.move(@); 4 j' ?( L! d( @9 q% I! C
6 `5 o7 r& Y( c) T! }% ?: S
NEXT;: M" x5 T) N" G% g
@.backwards:=false;. e& n5 T- K5 y
end;
9 m+ O/ j3 s" V) X. p. C |
|