|
|
遇见一个难题,请教各位高手。
- `! @/ }! y* J# j# x" m3 d% R7 B8 g/ Z. _
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
$ e3 `: s! n- N0 |& d
5 Q& _9 ?4 m. u8 K( b) m需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
' @0 e t2 V$ g" |6 B
" t( ?$ t" I; E7 E is
2 z, q" }0 c+ G. ` i,m: integer; -- 整数变量
* k/ T3 X' M$ Q( h4 M Name:string; -- 字符串变量
, r3 I/ E8 e' L Obj:Object; -- 对象类型变量( e: s; a! U' B$ n9 k. N/ @9 W; [
4 S3 {2 E- H! r7 J6 i$ _* S
do
3 A) Z% _3 b+ F5 P& ^! _ m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型1 D4 ~" D# c3 x6 s9 G: H
Name := sprint("BA", m); -- 生产线名称. X( W; u. ]) Q/ |" I
Obj := str_to_obj(Name); -- 转换成对象变量) |- {- f' q2 i+ n3 q
E( _6 s0 f! A5 i
FOR i:=1 to 100 LOOP
2 a" ~) k" |% k" u waituntil OBJ.occupied prio 1;
h$ r2 A' Z8 ~5 q/ Z; M, @) O OBJ.cont.move(@);
: \5 l- x. M' J- \ ' s$ N5 ^" Z/ `: `: s
NEXT;2 [; [4 m% C$ s" j5 w) {. r0 O) r
@.backwards:=false;) c) n1 n' T i9 P: _+ ^2 ` {
end;
$ z/ n0 G6 x4 m# U6 U |
|