|
|
遇见一个难题,请教各位高手。
! n* I" b+ p) L K5 r& [
" m- |, i8 b+ L9 o使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。9 {. A& J. {( i; r7 o# V
. `+ M1 e" E2 {# p( H! }$ K3 ~+ l需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
( s5 H# S! w! x& t, B
* `# A3 S% k4 E* z W1 W5 q5 H( ] is
% n; ]" O( L; h @; L* ]2 t! o i,m: integer; -- 整数变量
7 l# A* P0 \- r Name:string; -- 字符串变量
' h) J4 a* L; J, O3 J6 I3 n Obj:Object; -- 对象类型变量
$ M5 M. a" Q% e" q m: l- h4 k! I
do; U1 E6 M; t, R4 y. }2 j
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
) E0 q# W1 z8 C) r0 D% |& U1 k* G Name := sprint("BA", m); -- 生产线名称8 n' a1 g' A. \% u
Obj := str_to_obj(Name); -- 转换成对象变量
1 `5 w4 ~0 V0 T' G" f9 U9 h . n0 e) m% g- L2 Z) E" d
FOR i:=1 to 100 LOOP& y2 l1 M6 B7 J4 B
waituntil OBJ.occupied prio 1;# {" a: u+ G5 p' P" m0 I
OBJ.cont.move(@);
& q8 x9 ^7 K+ O * N6 i8 t" m, c8 u5 g
NEXT;
9 P% ?2 d- r1 z) S, @ @.backwards:=false;9 v3 A$ t- E1 [3 g; k+ ~
end;* S- Y/ a+ Q+ V4 G
|
|