|
|
遇见一个难题,请教各位高手。0 O: \1 h6 k" N. e% C% g* t2 H: b
) q) Y' x9 M+ D- l使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
( @ s4 l! x+ G0 U
* X- m, E! U, o$ v' g! J需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。* [9 P0 x/ J; z! d4 t" r3 P) e
Q7 _: O: E8 V/ I6 {# A is9 y7 \* K: O( i' X% h' u2 ]6 N
i,m: integer; -- 整数变量" M2 [- |1 P6 P+ n$ H
Name:string; -- 字符串变量
- o8 i$ \8 w2 h6 n% e6 h# [ Obj:Object; -- 对象类型变量( F, s% P1 F& i
+ ^6 @$ r. f& x) n& i
do6 E. [6 R7 m% B, I0 h- O8 B$ f. x
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型( Y6 k5 a$ J4 |5 x d; E
Name := sprint("BA", m); -- 生产线名称( C* r2 N5 W* Z/ f5 Z
Obj := str_to_obj(Name); -- 转换成对象变量1 O) S% E( i0 b' h
' p$ G3 ~9 B. s
FOR i:=1 to 100 LOOP1 ?9 u- Y- v: i4 e% X$ u
waituntil OBJ.occupied prio 1;) @( i k+ H5 ?$ G. w
OBJ.cont.move(@);
* ^7 w+ @ m0 A3 ]! b- |
& F* D, K. i: w9 P# ~- t. R NEXT;3 U2 J3 v3 V! V4 m8 h! Q0 A9 ?- l. S
@.backwards:=false;0 K# w# y5 e4 u
end;
6 X0 P5 X! F& V |
|