|
|
遇见一个难题,请教各位高手。4 R& }; L. r* q+ l
, u* o5 ^* G3 z7 H/ V使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。! L) H* g5 Q9 V
7 M+ `5 Z' d$ t" v需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。+ S& a. |4 V% A; t$ o
2 s& d; y! L& Z/ R" |7 q1 K
is! d5 L7 t+ @3 x) K- S7 F
i,m: integer; -- 整数变量
8 i0 u3 c' ^* l, ~ Name:string; -- 字符串变量9 s E- O' c" X, R+ u: `
Obj:Object; -- 对象类型变量+ J. u9 \! N: u+ C' M
3 G! v; X7 o! m* Odo
- M2 [. m. O {+ u m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型+ E# E0 R7 ^+ z
Name := sprint("BA", m); -- 生产线名称
! ^& X. {( s3 T( y! m+ L2 G) E Obj := str_to_obj(Name); -- 转换成对象变量. \+ L9 M& W6 `+ ~3 g
5 h$ J( W% O0 U, }0 P, C( S FOR i:=1 to 100 LOOP
) L% c& u8 R* S+ n, [6 Z, w. V, p waituntil OBJ.occupied prio 1;
' X5 B- t( M1 J OBJ.cont.move(@);
" z' c ^6 ]7 h1 B 6 {# l4 X4 n/ z4 g6 T
NEXT;% x7 p6 l `: n5 o
@.backwards:=false;9 g5 v5 n: G6 P1 E$ k; v
end;
" o9 r5 c* h( W! g |
|