|
遇见一个难题,请教各位高手。
) b D& C: z5 y# w2 m7 p/ |. a" g0 [. d: {8 p7 }: ?: O$ H2 `% o
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
* s* g1 [( ~' E" m+ ]+ s
* a' {( e/ S/ V需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
! V* I! L2 F1 t. h* A& F
' i' m) s. V1 _4 U+ |2 T is
3 x, k; @5 y9 R$ u5 }4 Q i,m: integer; -- 整数变量2 ], g" Z6 d( g- d( ^
Name:string; -- 字符串变量
4 t. c4 o1 v- j* Q, y% [( X ~ Obj:Object; -- 对象类型变量% N* q" Y+ H, @4 s. \
' S1 k q3 q7 p+ Odo! r2 s0 y, M; w7 T
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
' O* B4 V7 M6 s0 l0 j" ?9 Y Name := sprint("BA", m); -- 生产线名称+ o9 _% M$ M+ U" d, s
Obj := str_to_obj(Name); -- 转换成对象变量/ k( h/ e4 s7 S6 T; N; U' r/ G
9 G3 E% \( ~( J FOR i:=1 to 100 LOOP
& u3 H! n4 m+ {8 E2 t7 p5 ` waituntil OBJ.occupied prio 1;% X, i3 X& N+ j, r# S
OBJ.cont.move(@);
4 P7 o$ y# t @# ]: k
+ L# y d- b! u NEXT;( h/ t2 b- u& I: Z1 e+ n
@.backwards:=false;
, ^. _9 D$ B4 P" a2 F4 Cend;; K; M% N4 P" \% I4 e5 a) L- G
|
|