|
|
遇见一个难题,请教各位高手。
* R0 F/ x7 A8 T2 y8 O: k( @, n. @" @5 A7 Y# ]8 j
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。+ J% c# J/ T) ~8 T
- \' b! k- d& a& ]" c8 ]4 ]% v需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
) @4 L8 [ D# q/ m$ ^( u/ _' I4 V" m7 I9 ?- ~* x$ v+ c
is
/ f0 y* P h2 q0 |% s i,m: integer; -- 整数变量* ?5 W; l4 h3 L8 |4 g- \, l9 p K/ ]
Name:string; -- 字符串变量3 l0 M+ l1 n+ ~: E8 g* L9 R( e
Obj:Object; -- 对象类型变量' f& F& e2 ~' g B
) K- n P0 D% h% g4 c
do
{- R3 B9 W& N ^* ~9 H, B m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型% y, s0 l6 [; g* P5 f! I
Name := sprint("BA", m); -- 生产线名称
) y1 t3 f) o0 H8 H Obj := str_to_obj(Name); -- 转换成对象变量3 h$ k z: N2 W
# N" | C0 k- Y. t7 J! G FOR i:=1 to 100 LOOP
5 _! b% o7 c' ~1 U( p" y! n waituntil OBJ.occupied prio 1;
( l4 f: D/ h& B6 t1 U& [ OBJ.cont.move(@); 6 d! `+ W6 D b1 a
* G5 W& a9 l* `! S! W$ P& q& i NEXT;" x9 A$ u; k, H+ P: f$ V3 ^# z7 `: ^
@.backwards:=false;
/ l0 y4 W5 \2 R, W2 e, hend;
5 _! K6 A$ I" L# Q0 ~! P- R |
|