|
|
遇见一个难题,请教各位高手。
* k6 _, [, a7 G, n: k
t0 d/ |# N( v E/ Q4 N使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
) f$ [" B: @$ S& L/ K7 G
5 \/ f2 C/ m1 N9 |0 P: }* q需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
E. A! t8 n, f, }: o. u( K7 I1 n2 h: F3 S8 y w
is
8 z5 m; p# d& v9 c, |; C i,m: integer; -- 整数变量) v8 o: O. O6 L' l, P
Name:string; -- 字符串变量
3 J3 a& K! e" u Obj:Object; -- 对象类型变量
+ R n$ m3 c/ G0 {7 [ e4 F2 @* e( i$ E
do
: C" |8 b8 ]4 }" s% f m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
" d9 m) O. C6 g' k- h6 T6 y8 }0 m6 v Name := sprint("BA", m); -- 生产线名称
* B0 ^' L9 G) ~5 D8 o* r" O' Y Obj := str_to_obj(Name); -- 转换成对象变量4 e* L2 y1 Q6 L+ Y% |" A8 I0 c
$ p9 \, u6 y5 C) b u: h FOR i:=1 to 100 LOOP; j' w2 K' V) Y
waituntil OBJ.occupied prio 1;5 z/ I/ U! @8 C4 g
OBJ.cont.move(@);
" `/ K4 h& i' X
! [ E2 N) s6 z* U/ p NEXT;5 u1 c+ T6 h* E+ T/ Z
@.backwards:=false;# C# {$ V6 X4 u, y
end;
4 z- @6 S' A9 E) U6 s4 M* ~ |
|