|
|
遇见一个难题,请教各位高手。+ R, L. R' E; W
" l5 o5 ?+ N) R) M6 N
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
5 Y4 Z% g5 f3 t
5 a5 w7 {; O( B f+ A需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
1 W' v. X. ~: b5 k5 h* M1 E! H
6 H1 l; U3 B5 u N is
4 [1 r* K% o1 c& c' o7 p. B i,m: integer; -- 整数变量; Y% P3 U) I: O+ }4 d% j K3 J
Name:string; -- 字符串变量
! B. u9 o5 M( X% [2 ^ Obj:Object; -- 对象类型变量
# g% u; U5 D& n) |; R; z' I$ i6 R( Z" [4 m. i; |* r$ \
do& R# B, d9 J& H* o6 ` [8 a
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
+ m5 ~: f: \4 U1 o L. e k, \. M Name := sprint("BA", m); -- 生产线名称
0 t C# U9 R/ b) }$ ]' z, H) ? Obj := str_to_obj(Name); -- 转换成对象变量' i5 l. ~7 ^9 E) L: ~
$ c# Q r. W" e' Q' ?
FOR i:=1 to 100 LOOP
3 R2 t. \9 u' q waituntil OBJ.occupied prio 1;
7 |% Y! \; S2 j OBJ.cont.move(@); + i, n% A. f/ f# P/ ]
$ e3 P$ U9 [9 }0 o9 |2 } NEXT;2 n) M( L! E. @) p/ _5 M9 T, _$ f( G
@.backwards:=false;8 G: {" c5 g/ a7 P
end;
$ W# e: t8 f& D1 l0 J7 x |
|