|
遇见一个难题,请教各位高手。
& [; U" t% m1 _$ Q9 H
* S4 J- o- M5 Q- x" t* g2 H使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
& t Y; q% s5 J, r. i8 g1 o- q5 r& p ?8 X& e# S w( M
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
# I# S2 c. d5 ^4 S% I d6 w- ^
7 c# f$ f+ U; T) _+ o4 n8 Y is
! G/ N4 S" {+ \8 I' L4 V. q i,m: integer; -- 整数变量0 x, |0 U. E. ^: i: v$ X) x
Name:string; -- 字符串变量8 @8 v3 \4 O# f8 J- S9 O4 o, b
Obj:Object; -- 对象类型变量
A# o+ ?1 C1 ] i( i( N- X
$ Z6 W. C& q4 h ]0 F3 hdo
+ H# v) N2 `/ j0 z m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
& r/ \# l; c! A0 {& x& c Name := sprint("BA", m); -- 生产线名称. F( J1 s6 h% u* n0 k
Obj := str_to_obj(Name); -- 转换成对象变量
0 B3 A& {; F0 E0 E9 H0 g4 Q) l 0 K5 @% s0 x1 T9 L! @& i! s
FOR i:=1 to 100 LOOP
8 R V# Z! k! ?* V6 O waituntil OBJ.occupied prio 1;
) U9 s2 o$ S& |1 y OBJ.cont.move(@);
% ?4 }3 m! m/ q; `+ R % P' _1 E: x" v) p' r( V! Z$ N
NEXT;
9 d; ]. a: H5 H$ u: | @.backwards:=false;& v I {& o7 c' w: w
end;
6 F8 d3 b' G0 n) k5 a: b |
|