|
|
遇见一个难题,请教各位高手。
! d8 w1 B% N$ X. \& Q. a$ ?$ X0 }9 A- a! [
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
7 b7 h6 J# z2 ~4 S/ T6 W
n& y0 L2 W- S" {( Y" b# i9 c需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。; }# j8 R: q1 D
6 c6 J$ U& c! m is& g, C3 ~9 j* c" h9 \( ]
i,m: integer; -- 整数变量
' g G2 S% A! n$ {- ?7 K0 D1 }9 Z Name:string; -- 字符串变量
4 `. v/ U ^3 m( T Obj:Object; -- 对象类型变量
5 h* o! e1 |, f/ f! L+ j
- L) l/ u/ ]+ Q" M) kdo, c. P, d$ `* o
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
) @, v; q' N2 l( |% o+ S Name := sprint("BA", m); -- 生产线名称
: |6 P. B% c; {( ~1 x Obj := str_to_obj(Name); -- 转换成对象变量
: T% X2 h, b2 ^- F* } * u. J% K2 e, C3 j6 k
FOR i:=1 to 100 LOOP
- k9 M! x# ]! O waituntil OBJ.occupied prio 1;8 t. o4 T) F9 [: U* f# ?9 h
OBJ.cont.move(@);
) T+ j2 w6 k! `; e/ E; x e% W" w
3 E6 @9 s- h# O NEXT;
2 x7 ^* E7 j6 ~$ k2 M @.backwards:=false;
( f$ y; Y# b7 ^$ _" i+ [end;
$ D& X ~# w; ?8 q/ u+ B |
|