|
|
遇见一个难题,请教各位高手。
! W( {/ Q3 B9 u o ]1 R: W7 `9 g* Q' c1 r
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
- b- e" |- z( p5 w( b; X7 b! J$ _* R* ?7 E
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。/ }/ ^8 o+ }) z k
% O7 X9 c, y: s) J7 `, H& `
is
0 N, W9 w! C0 |7 |9 ] i,m: integer; -- 整数变量* v9 S9 F% j$ Q n2 \
Name:string; -- 字符串变量
8 R% z: Y; k& G5 q# f Obj:Object; -- 对象类型变量
# A- r/ p) e1 r* h% O: g! @5 W" J3 ^. H, }4 I* i4 e7 O7 {3 h
do4 u$ Z9 E8 j9 g, ~
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
' x6 e4 b$ T6 k$ y% R% k% j& A$ H Name := sprint("BA", m); -- 生产线名称
0 v+ F: g, n: m( O+ E9 ^- c Obj := str_to_obj(Name); -- 转换成对象变量' [+ w. r3 A- j4 Y" v* j/ o
0 G9 e7 F/ E S$ H% R6 k
FOR i:=1 to 100 LOOP; V, m t' V3 z5 O
waituntil OBJ.occupied prio 1;
# @6 Y6 G" i% z/ o OBJ.cont.move(@);
# |2 f+ x$ H- q$ P: Z * Y2 e T* s _0 W$ t
NEXT;4 ^, }( ~' j1 x' `
@.backwards:=false;
) j8 x4 B$ i2 M( g3 ^) `end;
, T1 A* Y$ C4 K3 x8 {/ M4 k0 w |
|