|
遇见一个难题,请教各位高手。% [# J7 q6 }- h: l6 U# Y
+ Y% b5 e g" ?& M+ a
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
2 b r! ] F) g) @8 @1 I
% @2 b4 D4 K: g: n- ]# ^需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。5 V8 Z3 d7 P. _" C% y; u. M
5 u% K( B+ K$ w0 s0 |9 G is
7 K8 e: K: c$ o6 W" [6 A2 M/ h4 C i,m: integer; -- 整数变量4 H, d c0 H/ n7 v" o, G
Name:string; -- 字符串变量
7 ]; {+ f3 ]" ]+ j& u0 F5 ^ Obj:Object; -- 对象类型变量0 j4 X( L" p& b% v
; ?0 p5 s; F, Ido; y8 Q* f4 Z, y) q
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
) Q2 ^3 w8 p6 R4 @ Name := sprint("BA", m); -- 生产线名称
0 f2 j$ J# ^2 V/ Y4 @& a Obj := str_to_obj(Name); -- 转换成对象变量
3 X F& E3 K T
% M S9 P: I6 V2 f, U k FOR i:=1 to 100 LOOP2 l- }( w$ d2 w6 J- K& F
waituntil OBJ.occupied prio 1;
6 b c" ~1 d2 B$ e! @ OBJ.cont.move(@); 8 B1 {4 S" ~/ M- M L' \
& y- @0 V ]; A- h+ }% Z8 g" [: i NEXT;, C( Y2 i& E8 C6 u) z% k% K& N
@.backwards:=false;
6 ?, s8 K g2 T9 Y8 ~end;$ X. c c. i% z% n7 \9 L! S' T
|
|