|
|
遇见一个难题,请教各位高手。
6 }; _6 u+ `$ m s6 ~0 b* O9 ?+ e1 l7 q
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
* V. S0 T8 g. k+ a
& ]) L/ R$ T8 x需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
! L4 y4 p3 F" v" a) P5 N: ?9 ]) J: E9 u5 l# h% l, i: `# f
is9 L6 f+ B# F; n/ f0 R) x- K& I
i,m: integer; -- 整数变量
( E$ s& B1 U$ P U Name:string; -- 字符串变量- h: M! E, _! Q: _ y
Obj:Object; -- 对象类型变量
1 \: {( D7 q+ g: l/ t' S1 o Y" w( q, q+ }7 N" h
do$ x( n: ]9 i0 ]& @" h A
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
1 x" u2 z' E. M5 N3 a6 q Name := sprint("BA", m); -- 生产线名称
, p/ i5 E% V' x Obj := str_to_obj(Name); -- 转换成对象变量
* ]. Z- W2 B" ^( r/ W! C
+ z: o2 a" j9 }" E! Y3 \ FOR i:=1 to 100 LOOP
5 i7 P7 m7 d& X$ v waituntil OBJ.occupied prio 1;
& b% L4 e$ }8 J- R; Q OBJ.cont.move(@);
- @" W) r9 @0 }1 }5 O# O- A. r $ }1 F! I& {. m4 Z$ y
NEXT;
; H4 V' {, U, q% {. r e$ r @.backwards:=false;' F9 r& {" x6 s( d0 X
end;
' j& r: L6 R+ ~% O/ r |
|