|
遇见一个难题,请教各位高手。% I$ m4 v# f ?' d$ A- ^
7 {& n% U6 t' U
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
$ o0 ~ T* u3 e* |$ n' A0 v4 u( p
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。! D' |! ^/ s0 ^! r, q
0 w- i {3 g) I
is
% D+ O& @. P6 | ~$ h& C7 `) d i,m: integer; -- 整数变量
$ m4 e) T5 I; L0 ?9 }* n Name:string; -- 字符串变量
/ \6 n4 {* i2 E+ l Obj:Object; -- 对象类型变量
+ D, a9 O- P' N
$ u! d' ?: V7 t# l* mdo3 I( h# O& `) z; u0 t" h& K
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
# c5 B8 l! c# H1 \" M4 z+ ` Name := sprint("BA", m); -- 生产线名称/ f5 v; d/ i/ g% U
Obj := str_to_obj(Name); -- 转换成对象变量
3 M! ~# o" Q" w: r/ H* {
: h* M; ?$ U9 a0 T7 m0 j FOR i:=1 to 100 LOOP
' y6 k4 e3 K. B7 ` waituntil OBJ.occupied prio 1;
- {, E% h" Z& S8 Z OBJ.cont.move(@); : l8 W6 h0 Q% U: ^( _0 l
" g! L/ u% {6 L4 T6 Y3 { V* A NEXT;
8 v9 I& S: W6 C) k( N @.backwards:=false;
, P9 z- K, v7 kend;) O3 N5 \" L$ J0 @# h, g) E' @% b
|
|