|
|
遇见一个难题,请教各位高手。: u' I+ D' g! N* L
, x8 c2 Y- J1 J0 ^$ k使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。4 a( @( L$ C/ Q G7 N6 N* F
: N1 V- q1 G4 B/ K1 A1 K
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。9 M2 s K/ a6 J% \1 x4 D% a, V
" B2 x( [: l. r! B: T
is
" z( p, r$ @# \ ~: ]" y4 V% ~ i,m: integer; -- 整数变量7 d Z' L p5 J, L; [3 h
Name:string; -- 字符串变量
8 C9 ?5 x8 h3 v, J8 L3 s Obj:Object; -- 对象类型变量, }. |1 H2 Z1 D" _7 V
2 J: ^) c1 P7 g8 E1 B4 b8 j7 Fdo
2 u+ P5 l: b6 l! C, L5 Z m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型+ v Z5 f- N! C/ D* M, G: W
Name := sprint("BA", m); -- 生产线名称' ] o+ s+ U S
Obj := str_to_obj(Name); -- 转换成对象变量% c, x- I2 n+ Q L' i
7 Q" W* }) n3 e3 X0 F. ^7 ?
FOR i:=1 to 100 LOOP
- S3 [: P' }! S; x waituntil OBJ.occupied prio 1;" I5 O% ?2 o, h# E. I
OBJ.cont.move(@);
4 N6 t! Q* G! y" T8 h# M
) y/ `, v; n8 }5 ~8 b, F NEXT;
1 h2 I4 m& `: H" i4 h) z @.backwards:=false;+ H7 I7 |4 C& `
end;' F; a8 f, c) k! t" ^1 R% j
|
|