|
遇见一个难题,请教各位高手。% p. w2 n5 M+ v8 \; X4 n
1 A% Z$ E7 \* o使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。- q! k( |5 G7 A( W& c4 F2 Y6 l% c
) o1 v% w+ r' p/ {需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。$ O$ z) x) ?" F, B6 @1 m: N
o& k+ P. k9 u+ o: S: G9 n
is4 R F5 z+ T1 L/ z+ L V4 Z
i,m: integer; -- 整数变量
6 e) ?7 F, F! j1 b# G Name:string; -- 字符串变量
x- F0 P9 Q( e; G. K Obj:Object; -- 对象类型变量
6 u# {. Z0 j. Y" _
0 I' _* I- t q, p+ o6 U: c6 Y4 Fdo
. O/ n3 R$ r" t0 ~3 I5 k! E' P/ [ m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型5 y$ g" S; }$ X2 U
Name := sprint("BA", m); -- 生产线名称
7 a4 X% h) c1 @7 E7 O' [& } Obj := str_to_obj(Name); -- 转换成对象变量
9 g" K# g5 o }' b+ \ + w! Z4 M2 @ H+ N- R
FOR i:=1 to 100 LOOP$ X5 ~4 g% R/ c& w
waituntil OBJ.occupied prio 1;
2 f, q; p6 }% I" l+ N3 X OBJ.cont.move(@);
( K- f' l, s C+ u4 x5 w3 x , X, q8 N2 c/ E+ @
NEXT;
6 {* A2 F( R) T4 ~$ K! t* S5 ~ @.backwards:=false;
8 c4 S4 Z: z0 |/ [$ |# }end;9 j$ s$ H# G! ?8 w$ ]
|
|