|
|
遇见一个难题,请教各位高手。
, c. R# r' v1 \" B( ]" ^; i% Y. g8 A/ F0 d* x
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
) Y6 g7 w$ C7 S. Z0 u8 G) O, y1 _ U0 h6 A5 |1 N
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
0 |* ^' j( q2 s( t6 I& ^
& i$ {5 |) b' L" a( E is
. w1 Y) @3 C% P* \; V9 R i,m: integer; -- 整数变量
: S y0 G; Y. i) l) b7 ]4 P0 W Name:string; -- 字符串变量
, ~+ U7 R# U" p$ i Obj:Object; -- 对象类型变量
1 X+ v* Z) \- n; {6 j+ R; I8 _* I0 k' ^/ u$ c
do
. }) I: y2 {! T4 Z m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型; i6 }# o; E2 `$ m" U8 @4 {
Name := sprint("BA", m); -- 生产线名称% }+ H. f7 p4 y2 Z1 \7 \5 L
Obj := str_to_obj(Name); -- 转换成对象变量
5 z7 u5 u( I4 J) M' m; ~
; T2 V! |* m2 _( f% F FOR i:=1 to 100 LOOP
, ~1 i0 x6 R1 I' U7 g2 ~: E waituntil OBJ.occupied prio 1;; V6 ~1 r, }; ^6 M# r3 D9 q: W
OBJ.cont.move(@); 5 D( O( r! D1 X. M# S* g: t! Z
: |) t: n4 g. U* H
NEXT;
+ F u* \- p8 n @.backwards:=false;! r `: R/ W) j. Q
end;' j0 P* ]& o8 f1 a+ P5 ~ t9 n
|
|