|
|
遇见一个难题,请教各位高手。
: @' e3 |) B$ |7 ]6 w- n( l, C$ O2 t& t) H3 z, ?5 ~: B& p5 ?. c
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
% ~! R1 B+ t8 J! Y6 J8 @ k Q
2 A# b* n ^, Y @, X9 G7 Q! ^& ] K需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
7 b) U9 d( e' E* o7 D/ p9 d$ z8 u2 h2 u- P, z
is( p6 f$ w0 d6 B2 y6 C
i,m: integer; -- 整数变量- u2 T7 A9 ?$ `2 Y! C9 F
Name:string; -- 字符串变量
2 X, j- o. H! ], B7 O8 i Obj:Object; -- 对象类型变量
6 D7 S L! t0 Y2 N) F1 a# f/ g, R' A f; D o0 F) v
do
]9 g) U& }# } m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型" X- Q0 _9 W* ~; e5 G& J. c" M: W8 P
Name := sprint("BA", m); -- 生产线名称
9 P( W- c- r6 [) { Obj := str_to_obj(Name); -- 转换成对象变量! t% i; C3 A3 I' t; @
1 A% S" Z' T- H' j) M/ Z. ?
FOR i:=1 to 100 LOOP+ D7 [3 @" F3 S# g- s) P
waituntil OBJ.occupied prio 1;+ Q4 L' S4 K. y5 e' U
OBJ.cont.move(@);
" {4 R- T6 c% I1 ~# h * z/ l' e. n' `2 ], G4 k& ]! W/ d
NEXT;& C& f) P0 L& N. Q6 z8 j: F
@.backwards:=false;
7 o( J7 B0 \8 }end;
" V: E" h' l& ?6 T+ N9 ` |
|