|
遇见一个难题,请教各位高手。6 U6 y$ D+ Y5 g4 @2 b2 z8 x
3 K! r, k7 W" [0 Z$ y5 n5 U1 N" d
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。5 e8 @* \. e/ ^7 C: N8 }
2 v4 ]- @' v m# U( h
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。) ]6 N) p0 Q8 x+ o# |. ~) Y
( E1 {( S# P, u7 F1 S; l |, _ is
% [7 F" x0 p5 |2 G5 E4 E; f i,m: integer; -- 整数变量
/ n g+ j2 ~) q0 C* p Name:string; -- 字符串变量2 H5 W: |. r- v
Obj:Object; -- 对象类型变量! ^% _( z. H8 T, {' w" w$ u6 Y5 s& ?
2 y, e% g k( d* N' U" d) |
do
) r$ n) P! \5 p0 a0 F- l- w m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
+ W5 t/ E$ q6 l7 p5 o6 X' n# ?7 I- ^ Name := sprint("BA", m); -- 生产线名称7 `9 r( G3 o# B0 D" x
Obj := str_to_obj(Name); -- 转换成对象变量
. E. M; B9 N# N3 y
1 `# z5 k$ | y; q- f2 i FOR i:=1 to 100 LOOP
. F8 ~0 a3 U9 a, W4 T$ D1 }( y waituntil OBJ.occupied prio 1;! \9 e$ M& L' Y. r$ ?5 j& Z B( ^
OBJ.cont.move(@); X! ~9 G3 I- t: z' s l% a
i# P/ h! T2 O NEXT;
4 }) S4 i. M, d: N @.backwards:=false;
8 k2 t1 X4 G2 i9 N& }7 l1 ]0 {9 N ?end;; q9 s e# G% n
|
|