|
遇见一个难题,请教各位高手。5 h3 |8 j+ S/ Q! F" [3 a+ \
; B: {: G3 i. q+ ]2 N
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
/ u# p1 c! z" n' _0 [8 V0 _6 ]1 j+ u5 L C/ j" D
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
# G* j% w7 A$ r7 M: c4 t
+ n( z2 B) O: u is
! ~) K$ {4 k% E6 A i,m: integer; -- 整数变量3 z: w8 z; {$ s5 C- F5 ~ V( x- ^7 B
Name:string; -- 字符串变量' [+ k+ b! `/ Y! r# E p& a" H
Obj:Object; -- 对象类型变量
( y1 y. e; J% q2 {6 z( p% M1 X
# f8 l) L( V- S6 C) vdo2 j) Q& N1 \0 M" G, f k9 Y8 v
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
, Q8 c+ r+ G5 t. j" \7 k: | Name := sprint("BA", m); -- 生产线名称3 f- b/ ]3 t. V# G* m
Obj := str_to_obj(Name); -- 转换成对象变量
1 r3 F+ _. z; i+ H- R0 @: W % i- y) M9 A% w/ D& Z4 }
FOR i:=1 to 100 LOOP# t" m ^2 E4 X
waituntil OBJ.occupied prio 1;
) r- U9 k5 d- j OBJ.cont.move(@); 5 k0 F+ E. D2 \! b6 |
: F; c* j9 `4 ?8 f. i. a- q3 K
NEXT;! f1 Y1 i/ \( i6 k( x9 a
@.backwards:=false;3 {* t3 E; t% ?1 {; |! w! Q: T* ?- x9 V2 \
end;# B( r- c3 K$ l3 S& S9 Q
|
|