|
|
遇见一个难题,请教各位高手。2 i* [0 ^! G4 V" n6 m3 E4 T2 J
5 w' `1 g9 Y! {+ o# C0 |( p
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
, i! _$ t7 l5 E7 O" j0 W, W' _* k$ f8 Y3 O
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。( H3 h; ]- e5 \! z# E$ j
6 {- V/ y, K! @
is
) N8 J* ?% J8 ~0 |2 h/ b S i,m: integer; -- 整数变量
6 z2 x, i8 Y; g* p3 i5 t* N Name:string; -- 字符串变量
* ~& O' f* |6 u2 e/ l' f& E* U Obj:Object; -- 对象类型变量5 Z4 u7 X& U% g \: d1 Z
6 h# {3 [ L7 t- N. [3 ^
do
0 L) Q7 ]* i1 L- S8 X% [- ?! G! ^ m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型1 f8 S7 r* ?; o$ i0 x, u
Name := sprint("BA", m); -- 生产线名称
, S: M' b F' a* t r6 h Obj := str_to_obj(Name); -- 转换成对象变量, K4 W! [9 D, d
! S5 M2 h# N3 S4 h FOR i:=1 to 100 LOOP
9 U/ a4 V/ K g, B- ~) v waituntil OBJ.occupied prio 1;9 j! r+ q/ P. t/ g# o+ G4 T T
OBJ.cont.move(@);
' q" p6 E8 J3 ?9 X7 ]( L
: A) b6 R4 k* X( ]; Z5 v9 Y' k) G NEXT;
% U; D0 ?4 i" C6 y2 C. Q; T @.backwards:=false;7 g, C* i9 f1 i X1 Y9 d
end;
3 ~& |; u3 F; e7 s2 i( ?, u* } |
|