|
|
遇见一个难题,请教各位高手。
8 e5 ?( }9 e, d: }' Y! j0 U# }2 p* Y6 Z- v/ a Q3 }
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
n: C* A* u N9 T( X2 o) C5 i' C1 g/ b' X( ?
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。" B- d* {% _! w* ~) H
: p# |9 p) g; X& h is1 j! j, a% r/ }8 O3 d0 H7 U
i,m: integer; -- 整数变量4 d% ~( w7 `% G1 s6 t
Name:string; -- 字符串变量
3 h8 O0 R% m6 `; { Obj:Object; -- 对象类型变量5 T ]- L8 r9 K$ b
& F2 p5 _1 Y" V. P8 N) t% p% V
do3 R. p: l8 o" K/ \, I$ `, T
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型9 b+ @8 m+ z5 _+ r/ A% n
Name := sprint("BA", m); -- 生产线名称
: \' V. Q v) [ Obj := str_to_obj(Name); -- 转换成对象变量
6 r' L9 ]8 n% y ( ~2 ]% F, T% Y3 h
FOR i:=1 to 100 LOOP. ?. P- [0 A- ?$ A
waituntil OBJ.occupied prio 1;
1 \! ~" N2 d# C3 U OBJ.cont.move(@);
& G9 R, z4 s7 j; q7 }+ [5 y / Y$ S' T5 y( @2 g& f7 R
NEXT;! B: n0 y: P8 X! L$ A
@.backwards:=false;1 ~2 O: k. D; L
end;
5 x" ~& t) q4 E |
|