|
|
遇见一个难题,请教各位高手。
; V+ B; _, n6 s# G
' B- P( \, f3 Q" P& o) m使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
7 @; d, j: P! T8 m
% i; } f) ^2 ?3 h! d( j需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
" ?5 b3 I# b$ A/ i9 P- S# \1 l" `4 i `6 r+ J5 W
is. r9 |+ A9 b, ]7 S4 j
i,m: integer; -- 整数变量
2 I! i% f( B( L+ d7 v& Y/ g7 J Name:string; -- 字符串变量
% s$ \- `: r, G0 r6 x1 b& I" I8 z4 } Obj:Object; -- 对象类型变量/ J" Q3 f' u6 i/ r6 \: \7 o6 u
N# c* i+ A" D( g/ Y0 Udo) P! v+ P8 o* }9 I3 j( Y1 W
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
8 ]& U0 a' }: g% ~' k8 i Name := sprint("BA", m); -- 生产线名称
- M! y! k! x- g3 Z1 t Obj := str_to_obj(Name); -- 转换成对象变量
, i) v2 i: I: B# r r 1 o! o. }- M, o3 | F0 D0 y
FOR i:=1 to 100 LOOP
& B2 Q4 z. ]+ F waituntil OBJ.occupied prio 1;- f; \9 c; \# m5 f
OBJ.cont.move(@); 7 s7 c3 h \5 t# Z
. Z8 K: {0 J8 [: b# D NEXT;
# c3 I' @- D/ M7 x0 y @.backwards:=false; j- o: g- U a1 u7 Q* t. a
end;
; K+ Z8 y! \1 A' ^+ ?7 O% A8 p+ @0 q |
|