|
|
遇见一个难题,请教各位高手。
1 ~) q X* _' V. I [2 ] W& M4 l
5 s6 I4 o+ L: `( @1 `使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。4 @9 ?" g7 O3 Q* h( R" `. p
( t- t9 e' g: T5 g( Y& Q) p需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
( l9 b( B6 A( n3 x4 w) a
$ o% A9 ]. d) {! R* P- y is
6 R& n8 Y% O( W! Y/ E i,m: integer; -- 整数变量
% c9 v# j( V) L" k) q+ B1 e2 x" U* u Name:string; -- 字符串变量4 F8 J$ c; c" a9 ^$ _4 w! t
Obj:Object; -- 对象类型变量
2 T# x% Z/ v- r; |4 T2 W
2 q& u3 x/ }3 I5 r2 {2 hdo
4 o6 l7 z( R+ E/ e' e' D' W m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型0 Q& I+ m( Y4 C# y
Name := sprint("BA", m); -- 生产线名称
; m: L* I' y" l" a Obj := str_to_obj(Name); -- 转换成对象变量8 I* N" f& E, i4 Z" h; Q
* r/ q, y' A# z( e* n! {7 v FOR i:=1 to 100 LOOP
$ |9 ~7 C& I2 Q3 A2 n0 \ waituntil OBJ.occupied prio 1;3 `: d6 f9 c! v
OBJ.cont.move(@);
) ^9 }9 H+ a* T( j; B9 \
0 H1 W* w! `) m w) z8 T NEXT;) c+ O0 ]3 Q+ }4 d$ [1 f
@.backwards:=false;
8 H& B$ \4 d0 u9 c; `6 J2 Bend;
3 Y: q# K- m9 |* d0 v9 l |
|