|
|
遇见一个难题,请教各位高手。0 s- K0 e) u# m& k( q8 r& \. N
2 ~& |# I4 D8 w8 Q使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。; l2 V; a4 g* {2 \, ~* }" f. {
V) N: p5 q& y5 M% ?0 L4 W, Z4 Q
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。 l9 ^: y3 E) Y" T" q! K
4 F% t/ `* t* l' i1 O
is/ @( ?: x2 y X+ C9 L# N7 B( ~
i,m: integer; -- 整数变量
8 u6 E( y3 X8 X Name:string; -- 字符串变量
# o4 w4 m% w' g2 f }- f3 S Obj:Object; -- 对象类型变量* i/ n1 X; n3 G
+ J2 q" V. n6 v9 f
do: Q/ t' R' f: D7 f
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型+ m6 k/ z' p/ X w" D* k
Name := sprint("BA", m); -- 生产线名称" D" I! O% V3 J( a( \) l
Obj := str_to_obj(Name); -- 转换成对象变量: H" U. e! s! f" G L
5 a/ l! b5 P2 m. y4 h2 z) p+ |
FOR i:=1 to 100 LOOP K5 o$ a9 C) `" u L$ [: c* U: Y
waituntil OBJ.occupied prio 1;
1 e7 o- P8 `8 {0 x OBJ.cont.move(@); . ^& @' C* x5 E, k. k
1 Y! [: ^# w0 s# d: ` {4 J, A6 V NEXT;( h2 z1 L8 h% p! d- \
@.backwards:=false;9 Z- m& i% W" @$ E7 y6 ]- G# U8 X
end;
3 o5 w$ N6 j% n5 ] |
|