|
|
遇见一个难题,请教各位高手。
4 C. }+ J& z# U; M2 z4 o1 V% ?5 `/ S8 X5 b: H3 B) a; j$ R
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
" o8 Q) W, \+ B7 o: F7 |
6 h0 v) P3 F7 B% L' q) _- p需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。1 r' i% c& m q+ g! c
+ R1 W! g. g- }& @ is% x4 H/ }! M/ [6 i8 |3 G: K$ m
i,m: integer; -- 整数变量; B& x; i# E4 j- \: [4 y% n! U! Z1 i/ u
Name:string; -- 字符串变量
: @3 W! o2 K* x" T6 c& Q Obj:Object; -- 对象类型变量
% f. V$ @4 S! v6 W. p8 N
& J M) x: Z% \; { u8 K3 Ydo
$ f. O2 c3 \8 _9 E; b9 p' ?5 Q m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型$ T! \1 j( t; V' U! q2 ]
Name := sprint("BA", m); -- 生产线名称0 _4 S4 X' n- P# _
Obj := str_to_obj(Name); -- 转换成对象变量
3 j- L* b9 C4 P% O& l7 K
. h% c; `4 b' U4 f. R FOR i:=1 to 100 LOOP
6 {2 W+ R2 b" g, \6 x" w waituntil OBJ.occupied prio 1;
4 {2 R! i9 }* c0 | OBJ.cont.move(@);
3 x% J6 \7 Y8 ?
* w8 v& e5 j) L NEXT;
f9 O3 d; n$ m; M. y) h* f @.backwards:=false;# O( G' k1 |( m1 O
end;1 h" M( \1 F; ]# ], \
|
|