|
|
遇见一个难题,请教各位高手。
5 q& |, ?' F# R/ P' U
- h; d1 B" R: I# f1 d5 a8 }使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。. e; z5 v, B* o, X6 X
9 q$ S$ x2 w& h: r% J1 w3 N
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。$ s5 ~6 k, V: S( Z' {, _
8 v6 z1 Z0 I3 `# e
is5 i/ Y/ M8 w# A
i,m: integer; -- 整数变量2 s0 J' Q4 [8 t% Q5 `
Name:string; -- 字符串变量8 ^+ P9 W4 {1 r( j$ q
Obj:Object; -- 对象类型变量$ B% L4 s0 {' _9 p; h
$ w* A$ z) f( x& E0 {do
/ I3 {9 I, `& y/ K4 E: H+ e m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
+ T0 G1 F8 Y8 U/ ]9 T Name := sprint("BA", m); -- 生产线名称) c3 ~- n: Z' d# l* |
Obj := str_to_obj(Name); -- 转换成对象变量
5 C" F+ g0 n( k; X
9 t- }+ k+ x0 L, `( G. _ x1 a FOR i:=1 to 100 LOOP6 I" I9 _1 O+ P" H0 m9 T* K/ I- H. c
waituntil OBJ.occupied prio 1;
$ _1 a, n7 K: M" Y+ p. T% P0 O OBJ.cont.move(@); ) Y3 b0 H \, f: s
5 C3 {" v/ r k7 ^! v( K NEXT;" J* n4 D9 d3 f' V" }" A
@.backwards:=false;5 T- |+ O* r5 D T5 r; i
end;
/ W2 f: |1 v$ V/ h) K @% o' _ |
|