|
|
遇见一个难题,请教各位高手。
' [; d0 I e; v& Y( f. S2 H5 |
: N9 j0 s* B( F' k1 B) q使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
{8 b4 d5 X$ a6 ?9 ?; m. n2 X; j5 s4 o( F0 o+ ^
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
: M5 R$ w8 b: d) z4 j d3 u, x O
. x2 |) Z1 B% W" g L+ t is
3 @* Z) l& m% z9 l+ N0 d, _2 z* a i,m: integer; -- 整数变量, w6 q' T/ ^( y8 ~$ G3 q0 \
Name:string; -- 字符串变量
2 [, l2 e/ u% _8 Z3 W Obj:Object; -- 对象类型变量' a) v ` U; _2 u7 s4 B, x0 C
6 l+ t/ V- H8 L# A
do2 C# R- e& T9 d) h7 ?
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
) X8 ~4 X# k+ j. E6 o Name := sprint("BA", m); -- 生产线名称* |" E. j* H8 @8 R
Obj := str_to_obj(Name); -- 转换成对象变量
, `0 n3 Q3 X8 U: P# J; {
' q& `' A' w* d# P0 H1 } FOR i:=1 to 100 LOOP! s" J1 e% ?4 l- V5 G7 a
waituntil OBJ.occupied prio 1;
# L' ?- d: g6 k; Y" S. B* o0 s4 U5 \ OBJ.cont.move(@); 8 _( } m- G6 G' Z
: k& n( z2 z1 G) |
NEXT;1 }$ S7 ]' c7 X( L, o# e
@.backwards:=false;
6 [* @+ W* k1 s# P- R- Pend;
0 q" J7 w' O. C! M% | |
|