|
|
遇见一个难题,请教各位高手。
9 ?! i8 w* L# b& i' J: [, B: o2 }
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
& q+ B- W [9 u8 ?& F. O* G
9 p, _' H0 l: a' v需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。3 O! B& S( U* s b9 T& ~
/ H) a/ ?% ^( k& Q! ?) a
is
$ |" y9 b( h9 C% `0 M9 } i,m: integer; -- 整数变量! v5 |" R8 i1 C9 y9 F( H' P) c' F
Name:string; -- 字符串变量
) C; S( W Q! Q* `7 Z5 G( D, r Obj:Object; -- 对象类型变量
2 m$ T' P8 k5 B* Y' L2 S4 Z
8 N- ]2 y3 v! s9 ido
: T F+ X. _# K/ j* r m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
( b& l! j; X. U1 w! M/ Z5 y% p& J r Name := sprint("BA", m); -- 生产线名称/ [# m4 P6 C3 V: }
Obj := str_to_obj(Name); -- 转换成对象变量
; c( x- w: E: p2 i% }
5 _- h* [8 e8 J" v' ^. b4 D FOR i:=1 to 100 LOOP
; e# x3 v2 s5 S7 _ waituntil OBJ.occupied prio 1;1 x3 H+ B; V) F
OBJ.cont.move(@);
1 P; k/ T. x! E
9 y, v3 X7 Q4 {. S% Z# b' @7 V NEXT;
9 B I. r2 G" ~( _ @.backwards:=false;2 d9 H. r2 S& U
end;
8 z* ?1 v1 X5 g" s/ A k! G$ A& I |
|