|
|
遇见一个难题,请教各位高手。
7 L: u- Q" F1 V: K$ `" i$ x( }1 ~* Z* p4 n1 }
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。0 H& R) w+ p2 W2 H
7 ~8 m9 n8 G/ C( d! s% o8 g
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。# t, A1 O; j4 f8 K
6 t8 b& i; K1 X& _ is
/ Y o6 ?1 c$ A9 V" ^" ^4 O. R i,m: integer; -- 整数变量
5 k# K! ^+ [; ` Name:string; -- 字符串变量
, y: ^1 c* b, z8 j. j3 L' m Obj:Object; -- 对象类型变量5 J. o9 F' V: X' z' e0 @
" `( L D; c1 ]+ J5 {2 S% Bdo
* C, A& L, Y: o+ w# j3 Z m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
: Z7 B; d' ^" A1 a/ g" C: k1 o Name := sprint("BA", m); -- 生产线名称( r& Y: E0 n9 W. ?
Obj := str_to_obj(Name); -- 转换成对象变量
0 e" _0 ]" V7 D ' t7 j9 Q2 D2 J5 t; q1 l1 C
FOR i:=1 to 100 LOOP
E% f. K2 v. g7 J+ |5 ]) y waituntil OBJ.occupied prio 1;
- W$ N6 v7 [# [8 A, A. p OBJ.cont.move(@);
1 { C+ o: I: H. g* q+ ? Z ( D, h. j7 E! R! c0 e
NEXT; [6 y4 ~+ \8 Q. ?! J
@.backwards:=false;9 v% F5 Q2 \8 `( O' j- W
end;
8 y8 m [5 {9 t! {7 i- [5 e! l |
|