|
|
遇见一个难题,请教各位高手。# ?6 \2 ]' F/ o; s; u
; Y9 ^9 u! C6 k4 u0 s% A; u& E使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。5 S* n! }" U" z
j: u* `% Z; Y7 e. d需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
* C% ]( M3 X4 J7 v. A* b3 k) h2 _) @. w! B
is
k, \2 f( L3 s4 V i,m: integer; -- 整数变量
8 Y. O% [9 _# W4 z- O3 a0 [ Name:string; -- 字符串变量
/ y, Z$ g$ X" U/ v& C0 a Obj:Object; -- 对象类型变量
. P; d: N( B! j& F/ |/ D8 y- n" ^1 T, V6 I, n1 x) C a
do) n" W- j& j0 _7 b+ F2 H3 @6 S
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
; P, S. H2 |/ g6 y% m Name := sprint("BA", m); -- 生产线名称" S7 \$ \4 a9 u$ r, f
Obj := str_to_obj(Name); -- 转换成对象变量
9 d. ~6 B4 ~6 l
$ \6 J, m' i5 W FOR i:=1 to 100 LOOP
6 x. I0 W( h5 J8 b" _( a waituntil OBJ.occupied prio 1;
- q6 }% ?7 x7 u, V OBJ.cont.move(@); 9 X4 x; k+ a k' o( @6 O. Z( t
' ]- a$ ?& s# V. J. u V+ q NEXT;; j q- \: S' a3 y2 ]
@.backwards:=false;
; ?1 R, M7 [! A; C% Nend;! x3 ^: w9 }: `, ?' \& o% n
|
|