|
|
遇见一个难题,请教各位高手。" P0 d; R1 _4 O5 f7 H
+ T8 |( s% I: H$ n( D8 K y$ l' G
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。8 ~' j# `2 I6 ]1 ]/ t; o p
; ?1 V& y$ V) X" T- P' ~0 A) f* o需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
" l# V. v6 J" `( _5 f1 s) K, |* X# V! M% O
is0 Z* H8 {: p9 q Y9 w% `6 S
i,m: integer; -- 整数变量
) Q- O. z! N- y! F7 | {( Y Name:string; -- 字符串变量
2 ~2 l2 \7 Y5 G0 g0 {* h& U Obj:Object; -- 对象类型变量
) Z" Q& H; J7 o4 U9 F6 M9 V: @) H% T0 z. ^& V
do, d1 ^1 X" J) d3 u% ?2 ]
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型) \8 W Q4 u7 O0 f# X; o
Name := sprint("BA", m); -- 生产线名称3 K; Y2 M6 ^$ q, _
Obj := str_to_obj(Name); -- 转换成对象变量
. \8 u, P2 X+ E4 D, Q1 b3 C% m 1 S( z; Y$ N$ A: t* @) d& H" c
FOR i:=1 to 100 LOOP
& `) s, p5 s% }1 O. ]1 u1 k waituntil OBJ.occupied prio 1;) O0 Q6 h/ a8 a4 n7 h
OBJ.cont.move(@);
2 u; g, y9 }9 i$ C; B
* I) |2 c* M! k: X: |; Q) b8 l NEXT;
% V+ j! G( q- \ @.backwards:=false;. g/ c& y4 N) k- F: l. q" g, r
end;
/ k& s1 I1 i8 u, X% q8 x1 O4 I |
|