|
|
遇见一个难题,请教各位高手。
. d2 ]7 I3 Z6 s$ d/ m
# k! M n& k. e9 N- f使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
/ ~# k% Q6 T. y
6 Y5 @1 x4 I7 }, O$ W, Q需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。+ V2 } @, t5 S; y* I( b2 b8 N+ C) U
8 i; t4 C- o6 T0 h+ i) q3 F is
$ u k6 x' R: ]) G" l a9 [3 n i,m: integer; -- 整数变量
$ F5 _4 t9 ?5 d. V q4 V Name:string; -- 字符串变量
( J' B' x/ H9 m% w& ~! | Obj:Object; -- 对象类型变量# O/ ]# k9 u2 o' G) `! [9 Z5 p
# b; w- ?' [1 V$ Ydo
, B9 B& b4 e- o# \ m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型 l+ F" L" p/ J5 b; g
Name := sprint("BA", m); -- 生产线名称- _3 I8 ?1 g& Y' e) t- p6 |
Obj := str_to_obj(Name); -- 转换成对象变量8 L* H5 _/ y" D' `5 S
W6 \ ^9 a9 f# }% s% ^( o FOR i:=1 to 100 LOOP4 V9 r. B d1 A) [: q
waituntil OBJ.occupied prio 1;) p! ^+ `& ~3 b
OBJ.cont.move(@); $ |5 `$ @! J4 V, ?
) ?6 E: R# s5 h0 j+ A3 I% G, y
NEXT;' T4 S/ \: Y8 N1 P
@.backwards:=false;
$ p/ u1 q/ z/ y0 U3 ~8 k: @6 {end;
1 W. e( Q0 a: c! e- K5 c# r |
|