|
|
遇见一个难题,请教各位高手。
0 I" G/ }, p( O/ H' Z1 b2 N/ f7 x6 K1 g! [$ d
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
$ F( Q2 S) E6 w: f5 o+ Z$ y& F, ?, G; A
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。# S9 U* K) {$ ?7 b0 s2 n
2 V! Z- f) ^1 S! J2 {- @# ]
is. R6 s8 e8 G, a/ i5 X" C& N
i,m: integer; -- 整数变量
* V2 P6 z( y$ `- @- p Name:string; -- 字符串变量2 {" e' b {' L: N$ m
Obj:Object; -- 对象类型变量) t% P4 N) i# _. R' d$ I6 V* B4 H/ o
4 y7 B, J/ l# a" b8 r1 X4 rdo
0 ~. P% |' _3 c+ i! m9 d4 [ m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
0 W _ @' w+ }! s: h Name := sprint("BA", m); -- 生产线名称/ u% g( U0 t8 ~# p2 M4 {
Obj := str_to_obj(Name); -- 转换成对象变量
3 K' S. c2 c) m; c( G
5 w6 Y3 S3 ?0 v8 a4 c$ z R( z/ D FOR i:=1 to 100 LOOP
9 a# I! k: z& [5 P% r waituntil OBJ.occupied prio 1; ]0 v8 Q% e, W
OBJ.cont.move(@);
: z0 C9 _! S+ ]. \* h
* I8 O" v* R$ L) {; a5 E8 ^% y; T: | NEXT;/ O9 A9 ^ Q$ v9 N
@.backwards:=false;! l+ U! |- I2 v% d
end;0 A9 V. f6 n H
|
|