|
|
遇见一个难题,请教各位高手。) k' s/ s+ T# f t- P3 Z% T
2 j R; ~7 ^) \; \' t4 ]
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。" `# i0 A( v6 ] C- i- e; O, W( ^- J: H
) _$ \: ?$ \6 ^/ P3 v需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。( w* N* G5 C. M8 h& s8 Q( C1 c9 Q8 S
" w3 D5 o4 V7 N7 g& [ is
8 ], |, N3 P5 y i,m: integer; -- 整数变量6 i2 M8 D L( d3 Q1 ~1 u3 s3 X
Name:string; -- 字符串变量
( z; @8 @$ b2 n! t4 a& V Obj:Object; -- 对象类型变量% x. I4 E0 U! N# _9 |! `
0 y, I; r: b- A: `
do
! j) N: S) |1 I# b' v m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
: b, O9 i9 X! ]7 W: P; K Name := sprint("BA", m); -- 生产线名称( C9 Q* |" b" e: Z- _; T5 ]2 {' j
Obj := str_to_obj(Name); -- 转换成对象变量
. h$ u! z; I+ y
5 B+ f4 K# G& e FOR i:=1 to 100 LOOP
, t) o. s4 k* [0 H! b; ]9 y. g/ s waituntil OBJ.occupied prio 1;! Z9 G q1 z% O; y
OBJ.cont.move(@);
/ c" [5 [9 ^, I1 ~' K. x8 b
1 |. i1 W2 Q( t' {) i" _ c' w: g' N NEXT;
! O5 w7 W$ I9 u1 T @.backwards:=false;
" N/ u( }: l Z H1 `! v( vend;" N! f6 _: h* D" M- L1 P
|
|