|
|
遇见一个难题,请教各位高手。
5 q; U# v' D+ u8 w
( q4 G; Q) k; w6 p6 N' W- B( p使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
x2 Z' g8 J# B) D0 r) J% r+ ]3 y2 R. D6 n& L
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
5 ^! k0 ~* o: O2 ~
7 \' q! i; e: B2 J2 F& |. b9 v is
* i5 X6 E6 {: S0 k9 h; z- A i,m: integer; -- 整数变量
; X* T* v* u5 T" g: T9 o Name:string; -- 字符串变量: \' R6 G3 m+ v, O5 G. Y$ [3 f
Obj:Object; -- 对象类型变量& @5 O4 x( H: X! H- @6 U; }
1 @8 P' \. _" e+ Y9 g
do
$ T+ ]6 C, e$ g m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
P# m6 b# F# R. ]. ]/ [ Name := sprint("BA", m); -- 生产线名称
7 U0 R$ ?, B: C4 i6 B' r/ D. \ Obj := str_to_obj(Name); -- 转换成对象变量2 g( n2 J/ ^0 Z1 a
, X5 F: }! ?1 K( ? FOR i:=1 to 100 LOOP/ M- r5 r' i: Y6 z% J
waituntil OBJ.occupied prio 1;
) K2 l* m8 ]$ W4 K, c& p OBJ.cont.move(@);
' ~/ s# k, a$ P: ^) e) c2 K - P% W4 S1 O/ m. y* ^
NEXT;
% e L& F7 C+ x8 G% X. O9 [ @.backwards:=false;& V6 M0 ^3 w) O; |5 o4 z8 K
end;
6 X) P9 n, C' r6 n7 }6 ^: Q |
|