|
|
遇见一个难题,请教各位高手。
' \3 P6 b0 q6 y1 v1 O9 r; D- R9 k. V' m* I& }
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
- `- J# F4 w6 p
" E7 n o( u) [8 R4 N p; ?1 q. L& J需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。5 K" ?. `; ?/ a; o
' G+ B* z- D6 ~& j4 n
is m. w4 y8 u; G7 w
i,m: integer; -- 整数变量
3 s9 j4 T+ {; q9 D Name:string; -- 字符串变量$ G0 R) J% i% l7 d+ E3 v
Obj:Object; -- 对象类型变量
2 i* S) {6 F2 _& [
# k" F+ Z' x! a7 I; k9 a% y# _do
/ {7 K. w/ A2 A. I& J9 S m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型- X0 o! G/ v* o/ n; j4 h0 _/ f
Name := sprint("BA", m); -- 生产线名称 W4 ^* s9 {1 |- S% p
Obj := str_to_obj(Name); -- 转换成对象变量
3 X6 D4 t& T# r . [- P& E/ f0 h1 o5 B
FOR i:=1 to 100 LOOP
7 p& U5 z8 v: b; J2 l waituntil OBJ.occupied prio 1;$ t- w Y6 D5 z: ^/ t) Z: @. R
OBJ.cont.move(@);
0 K6 E3 c, r' n" ]" `! \2 M
: M: z6 c, W0 t2 h3 k7 U0 D NEXT;
. z/ \! W; U- h' ?; K; b* f* J @.backwards:=false;" @' Q `& G8 O( [; G7 b0 V
end;
6 \0 {1 K& m8 _9 @2 @( V6 ?! B |
|