|
|
遇见一个难题,请教各位高手。5 Z, J# O* A2 N
$ P4 n; s8 M/ J( c6 A
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
# M. N' h8 P$ }; D: A g4 c- j: K, p7 k+ `0 @. [. q% a: [5 _
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
& _/ ~ I3 L6 o4 Y. }
$ S! v7 i' {0 D$ ~ is) X7 |* u! @% B( j
i,m: integer; -- 整数变量( E6 E( \; R% p+ I* o
Name:string; -- 字符串变量0 s; P0 A& u2 w
Obj:Object; -- 对象类型变量
+ F6 m' c8 u! y" A- R& h7 \1 }% [2 i9 s$ ?, Y2 F4 N% C1 H( p1 K- x
do1 e( g' g% P6 A+ `+ P; B
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
# U) D! P z# D% l' C. C# p Name := sprint("BA", m); -- 生产线名称
! o0 t+ n9 v/ Y0 B+ o- R9 M Obj := str_to_obj(Name); -- 转换成对象变量
, V" c: I0 ?# K4 U* `7 b- W
1 s: N% [; H5 T8 t, }% A% n4 B( @, g FOR i:=1 to 100 LOOP
n( T( t2 W; ]3 _4 J% p- J waituntil OBJ.occupied prio 1;
& e) K. [) b# H, D OBJ.cont.move(@); % `/ W' W! ^) a4 f, {/ V
: V0 d( K! D2 G! ]" Y: Q" ^/ o
NEXT;
. _) ~5 x+ [, y/ L @.backwards:=false;; l( ?' S! A" n; K" x
end;& x" W- i0 o( X7 O
|
|