|
|
遇见一个难题,请教各位高手。
& v- W4 K; ^0 L: E& b. i3 [, D5 c- O: W5 r
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。 t3 k! `* c5 \& }
) ^# o0 p! ^/ q E8 J" n* ]
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
6 A# S `$ k5 b) k3 J. }% ?$ q/ i- V4 l- k7 N
is# L# P2 d/ `% a, i. X$ b; k, g& D
i,m: integer; -- 整数变量
. L7 v$ l }9 _; _$ j Name:string; -- 字符串变量
$ e; D0 x, q) @9 Z; G2 q# ] Obj:Object; -- 对象类型变量, M) J4 I+ z/ U+ P9 g! i7 Z: G$ [, S
' z/ Y. c7 ?4 }* D0 n i, O
do+ K' ]4 Z- Q9 U9 C7 u
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型5 l( Y8 v9 I5 Q
Name := sprint("BA", m); -- 生产线名称
6 V3 N5 N+ t2 }! o Obj := str_to_obj(Name); -- 转换成对象变量" `. K, {5 I- e: L
, j0 m' H" V/ L% `5 O FOR i:=1 to 100 LOOP
8 q5 Q3 F! l" q0 h% B. E( L& @ waituntil OBJ.occupied prio 1;
( y' J4 w; V- n1 u+ ~- d+ v, D OBJ.cont.move(@); 9 [! \" s" n0 {) v# E8 v: ?
" \8 a1 C( k2 G2 j NEXT;( U$ B+ K& [6 V5 `. C
@.backwards:=false;1 Z9 M/ \& ^4 m# k) n, Z
end;2 X# O& ?; M5 V
|
|