|
|
遇见一个难题,请教各位高手。
. y4 l' x, U% R1 h7 V" o. H; X1 R3 z( f2 n! v4 k
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。 Y8 M2 _, Q% f t( h% \
7 D; g3 y2 A2 L8 c
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
5 h& U5 B. c: q
3 y; y- G6 W+ I) W is
2 l) w6 N% F# G, K1 G i,m: integer; -- 整数变量9 _/ x# E' @. _
Name:string; -- 字符串变量* o) X2 O S+ _% Z6 T
Obj:Object; -- 对象类型变量
4 T/ h# H Q" K9 \6 i# L
! ]8 p5 {3 s" t8 G4 G6 Tdo: {' n3 g3 [! i4 q
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
& c x" r0 W& ?& L' l Name := sprint("BA", m); -- 生产线名称; q. N' E3 [5 s+ {7 X
Obj := str_to_obj(Name); -- 转换成对象变量 {( ?' b2 k8 a0 d ~
) U w5 F6 g7 z2 i9 u' I0 b7 u
FOR i:=1 to 100 LOOP. q) ^" y; q% c' C) X7 m$ G5 F9 z
waituntil OBJ.occupied prio 1;, E6 Q7 S3 N) T. b+ i
OBJ.cont.move(@);
, V- y5 G3 m A' }+ Q0 L / L% s* X* f7 Y. n8 c- X9 _
NEXT;
$ b; `* s5 s6 p( ]7 V @.backwards:=false;
5 a/ e0 L& g5 a s/ T" E+ k2 C+ tend;
+ d+ S0 n% D) a& A( T |
|