|
|
遇见一个难题,请教各位高手。. @, v$ @! g9 ]3 d! n
/ G0 c! w2 ]; J& |& J+ E' @+ b4 Y* L
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
/ m U! g1 S. H6 Z+ E+ ^% A
( T- R+ V. |7 V4 A$ }# e' o需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
' s5 P# \ ]& ?) Q# x' s
+ E1 S& u3 p9 o o; o is- E V% }. v r3 _# \4 o5 x$ M
i,m: integer; -- 整数变量
3 G% [2 V, o% A+ R) J. R) \ Name:string; -- 字符串变量
+ x+ l0 ^7 D# F Obj:Object; -- 对象类型变量1 n* ] {; `5 k5 I$ a
6 v0 ` R! `/ _1 B
do
' a1 o8 }( p, u! V m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
3 I# N$ J3 M1 b5 X8 z9 U Name := sprint("BA", m); -- 生产线名称8 R5 V! k* H" F8 t: j
Obj := str_to_obj(Name); -- 转换成对象变量9 X( ^5 ]) P$ f6 s% X% c
- D: o) k5 O+ N# @ Q a8 J) U5 p& [ FOR i:=1 to 100 LOOP. `- I) s( ` Z8 k1 q0 o
waituntil OBJ.occupied prio 1;
) F1 q! l+ |. E OBJ.cont.move(@);
' q2 }2 z2 q) f& f. L * O0 d) a# R) v5 o
NEXT;
. n4 N4 T; K3 r, L @.backwards:=false;; @: n. V ]1 H; p7 e: }9 w
end;
4 P$ q2 Y3 E3 Z+ g0 U |
|