|
|
遇见一个难题,请教各位高手。
( j7 m: C$ e1 b J9 S: C
7 @) [5 j3 [, Q( O) j使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。( M- X3 t# r R% y- [+ t
: K$ O4 s0 S. i
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
3 ~1 F) O! S: B! k
& f) w0 b- y: W5 c" f. {3 p is; M6 d! p6 S* _7 W
i,m: integer; -- 整数变量
3 Q5 q0 U O. I9 `* [# L" L' `1 w Name:string; -- 字符串变量5 A8 ?& ~3 V; G$ f! g1 u" M
Obj:Object; -- 对象类型变量
# w' M0 G3 H" r5 u# e: o+ X7 N" L: {: ?8 P( `
do0 x9 ~5 S- W: M& F$ w$ X! T
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
0 Y2 ^* r, d+ t" c; z Name := sprint("BA", m); -- 生产线名称5 \6 k5 \3 A' O5 B) u3 p
Obj := str_to_obj(Name); -- 转换成对象变量" k+ n2 l) G) r5 ^
1 {( R8 ^, `- F, R+ C% x6 `5 w& j FOR i:=1 to 100 LOOP1 K# N) M1 F9 _; t( {
waituntil OBJ.occupied prio 1;
2 |9 ]; o) h& a4 T: I OBJ.cont.move(@);
0 x8 }# L% O0 D5 F. q- E" V! R
9 ~' q( i1 |. m* u6 M NEXT;
" e7 _; \$ M+ A- C! { @.backwards:=false;
# V- Y/ a" E* K6 }1 F8 p, _end;8 Z8 b/ [$ H0 T8 }. n7 M1 ?
|
|