|
|
遇见一个难题,请教各位高手。
* i) h& w& ~' A4 v' o! B% i/ E
6 n" h, A9 F) ?( G, ]使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
C& K7 f/ B" i
4 f7 Q! U' ?8 y8 p8 L/ H1 h- I需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。1 W0 Y- q) y2 W4 O1 k
_# B0 p# y) c2 c7 s/ K7 e9 x
is" E) S7 ]* m- C- z/ |
i,m: integer; -- 整数变量5 n$ H E8 m# z1 z
Name:string; -- 字符串变量
3 k' F- j, d! c7 D4 F Obj:Object; -- 对象类型变量) g& O+ r" s6 D, k# |3 l( t6 N. z _
4 G3 y7 u; f; V9 v+ i% f. e9 V
do
l/ k5 R$ |9 {! d6 m4 N% n m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
8 I" v& K' _7 M# m) V, [7 i Name := sprint("BA", m); -- 生产线名称
+ f7 Q8 H, N0 H$ P Obj := str_to_obj(Name); -- 转换成对象变量1 Z0 T/ o7 l, n' _% M0 r
& m4 A U' R- T. r* Q+ r+ x
FOR i:=1 to 100 LOOP7 ~4 m) X- m3 s$ ~, _
waituntil OBJ.occupied prio 1;
) u4 Q( D5 i! C2 E- Z% p4 C OBJ.cont.move(@);
6 e w0 N# e+ `+ m9 c8 R6 j6 b
9 O7 L6 M& ]+ m3 |3 `; J2 d NEXT;
9 f1 Q9 ^2 [* T' ]. T, B) ~ @.backwards:=false;
* ]0 E, b! @1 W' f( o4 d$ u bend;
$ L, i8 ]2 l' B$ A! | |
|