|
|
遇见一个难题,请教各位高手。4 d' v* y5 \0 @% U9 k# s
0 m% G3 t6 x: Y( j: O, q- X1 a/ g/ T
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
7 a+ U, |. q3 H/ R V8 `$ z
( q7 ^( ]. j' W* w8 b: l1 Q! Q需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
6 k7 v# |- } t# ^; C% N/ V. T* o# \
is, G4 S8 `; f4 B2 ?6 i
i,m: integer; -- 整数变量
+ j0 E. ? i) v) {. M$ I" z' W Name:string; -- 字符串变量
5 g! B% v& A3 U2 I' y1 s: D Obj:Object; -- 对象类型变量
% @$ T5 ~! K2 b+ {) V4 r4 V; W
4 T, I W& b- ?1 t0 G! d# D4 jdo
2 v7 F; u7 v" b' y m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型( e) G: q8 R( [- T0 g# I! ~
Name := sprint("BA", m); -- 生产线名称4 j: @* c6 P$ N3 ~
Obj := str_to_obj(Name); -- 转换成对象变量1 b$ W' M! H4 l5 Q% e/ |
$ l( s' ^; z, B, v
FOR i:=1 to 100 LOOP* K3 ]2 J" l" a; o x" q/ o" o6 T% E# K
waituntil OBJ.occupied prio 1;- m4 y7 r6 K1 {' W' f0 U1 C
OBJ.cont.move(@);
- \2 Q5 @% u- C5 s. ~- k! g: N ( h. |9 _, X3 L2 n: G* M( K! Z
NEXT;
8 u6 f1 M5 s( C1 f4 o' u2 H2 S: j @.backwards:=false;! S0 ]7 o) M" E$ Q p
end;; d$ M0 O" w: Q# T, \. v
|
|