|
|
遇见一个难题,请教各位高手。4 y5 R5 y* a, t
- ^% [& @, y' ?0 p: S1 Y& P- y
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
. E6 I! L% Y0 k& x+ O/ v' p6 P* v9 s( r, B" {
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。* M5 q( c: ?, [, U' ~8 r) w* i
" N1 x6 }- y, ]$ }4 Q
is
# e# r5 w3 P# Q* X i,m: integer; -- 整数变量
9 g) D* d/ c( O% ~1 h4 k Name:string; -- 字符串变量& `3 S+ x0 T" Q' x" r3 L& }
Obj:Object; -- 对象类型变量# q3 K Z! T6 x5 ~% b1 T: k
% [+ l; \; S: X8 @4 E* sdo
& V* t, P, A) z5 ]5 V8 T m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型" U# \& s T* F) |& X3 A, y
Name := sprint("BA", m); -- 生产线名称8 U- @5 C9 e- `2 L! O: S( Z+ z3 @8 t
Obj := str_to_obj(Name); -- 转换成对象变量
" b) C' q- N$ e" E! v* S ; R+ K. c2 H/ e( t; w
FOR i:=1 to 100 LOOP
( U# w$ @1 N) w2 z0 k1 x+ t waituntil OBJ.occupied prio 1;3 L, U/ V) n- o9 o- V' H
OBJ.cont.move(@); 7 B4 j6 J: d0 E" q
0 _8 Y+ ~+ L, p; h5 @$ `9 t7 Q NEXT;4 F2 j) p( I/ w4 U0 e
@.backwards:=false;6 C# j. w$ b: L* M/ q
end;
& T( y& u/ C" \( S- ^) ?7 L: Q |
|