|
遇见一个难题,请教各位高手。. y8 i$ Q& n V, O# r4 J7 A' H1 F4 e
9 l( S3 c- q. e) f$ `( N" {
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。 R- o y: i- Z5 b3 ~! s# }
0 [0 x. H9 u \1 G( w& o/ T需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。# V; G& J6 Q" n0 C) p* |3 O
/ R8 D4 k, |! ?& E# F7 ?. \ is3 s! J6 t2 J9 _2 n |+ I
i,m: integer; -- 整数变量, b' Q7 _; L. K" o+ n
Name:string; -- 字符串变量
: K9 o8 c6 ~# b# R Obj:Object; -- 对象类型变量6 [# M4 E5 j! j: F& T8 [
_" T* l' c& ~4 Ido
7 M5 C0 z3 w, X0 m m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
8 ?& R3 J$ {) e/ A v Q% |3 E; p Name := sprint("BA", m); -- 生产线名称, ~% [$ A$ J S0 L' y6 x( J
Obj := str_to_obj(Name); -- 转换成对象变量
6 Y/ X& r: M4 A5 T3 @/ F$ y & V8 W6 \. a5 b. {; m6 g8 W
FOR i:=1 to 100 LOOP1 o9 c k, Z* Y! {4 p. p( C8 L
waituntil OBJ.occupied prio 1;
- {; k5 A' Y& r) Z5 s" R; d OBJ.cont.move(@);
; N. ~( W# \( K; Z: ^3 s4 r, E
9 U% F6 S& x% e* \4 C NEXT;
2 w& p$ \2 E8 S @.backwards:=false;* P4 |( f. B, K* S6 X7 P" V- W# C
end;2 m# F5 e/ A( ~
|
|