|
|
遇见一个难题,请教各位高手。: U! p8 M U7 o8 U- j
: c" m& d, O) ^6 q, o2 h" ], g
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
: z) S& J0 q& i3 i$ l
( K" Z; B b. e需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
2 t$ A% d( t8 w+ c+ D! c& K8 v5 P/ f* k& b
is
4 V" ~) `/ @, [6 j, { i,m: integer; -- 整数变量
( Y U1 ^% J# ], | Name:string; -- 字符串变量6 M$ ]8 J. Z; ] G/ t t9 F- b
Obj:Object; -- 对象类型变量: W3 k, H8 @! y" t
; P" B( u! w% u X8 H6 }) H* @2 f6 F
do% g7 Z, g' U: i- o
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型. H& B/ Q2 }% x
Name := sprint("BA", m); -- 生产线名称/ \4 t* R/ d6 k! g# F0 O7 g
Obj := str_to_obj(Name); -- 转换成对象变量
8 i/ T D5 j9 J! c: j9 c* ^9 @
/ L! a6 }- E- W7 o2 b1 H FOR i:=1 to 100 LOOP
! [+ h5 N0 K) d: o5 P waituntil OBJ.occupied prio 1;0 o4 T, d9 D/ j6 L: l/ X5 [- }
OBJ.cont.move(@);
% Y9 T3 v0 S; C4 A/ E. q& o) o7 R- P* z- o
4 j. ?0 d3 D% u; o NEXT;
- F* K, R' X( P; D! ` @.backwards:=false;- Z F- i; _7 T# f
end;
: r, e! _7 Q% c7 Z |
|