|
|
遇见一个难题,请教各位高手。+ ~9 {, u: ]: P) Y8 w* S
6 U5 P- i5 Z9 f5 C
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
; t# G4 t$ ^3 Q, f: \$ s! Z& a5 v
, J5 a0 l# N [* t9 ?需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
5 S, [+ a! V3 b& f( I, g6 ~2 v
( ^. ]0 x; w+ u: U is
1 g6 g/ b. j: x: h/ m; v i,m: integer; -- 整数变量2 d( y- c+ n; r0 |! i
Name:string; -- 字符串变量3 h7 F1 M$ D, `7 {* S1 w
Obj:Object; -- 对象类型变量/ n; |* c. \8 U
3 E4 X( T4 K5 F! }5 _! x+ J
do. C2 i& ^0 \4 ?, V K; P( n# W' x
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型# t, L5 y" ^6 {
Name := sprint("BA", m); -- 生产线名称& X3 a5 {3 H: _1 d
Obj := str_to_obj(Name); -- 转换成对象变量" i1 ^7 a, S5 W$ H* |" S4 i
6 i6 L. Y/ ]2 u: s" i) L
FOR i:=1 to 100 LOOP& M. |0 j& y5 g f9 `
waituntil OBJ.occupied prio 1;
e$ N9 m* F" ^! [ OBJ.cont.move(@);
& W4 K2 K" O* ?$ j1 l4 j2 f, l 1 k n7 u% y- W/ t1 s6 a) G4 _& h; I Y
NEXT;' v- ~7 s3 R9 t8 B6 z R
@.backwards:=false;& P0 i" S \: x5 {; W9 P- y" }
end;' K$ S& ^7 t3 T @1 b2 r+ I
|
|