|
|
遇见一个难题,请教各位高手。
; K! D0 x: H I+ Z2 J3 b( N
2 R' U6 [0 V2 v% y使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。7 L* w+ @, t/ w0 t+ t/ \
7 D' u) b8 J! b) V" q T需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。/ y( I9 K) O6 B8 D) i4 @5 S
( p& N8 V2 q, q is
0 _6 J( B: m4 } i,m: integer; -- 整数变量
! o, \: V/ H! r0 H5 I Name:string; -- 字符串变量% n- H! ~6 x o3 K
Obj:Object; -- 对象类型变量5 f2 ~* f- B6 M! _! C1 B" }/ B
) }7 M" g, B2 Q1 j3 m! T& j8 Q
do. a( ]) G# E3 r! h6 g* n- P/ ^( r
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型- k, k0 t9 ^: ]) g1 E! v
Name := sprint("BA", m); -- 生产线名称
4 K& ?: j3 j. J2 F* d$ F, | a Obj := str_to_obj(Name); -- 转换成对象变量- e9 N$ ]: M+ M
9 k B& ?5 @$ H
FOR i:=1 to 100 LOOP+ m2 c7 q& f! g _' A5 m
waituntil OBJ.occupied prio 1;
( W% A. a, X0 E& P* J) E: @ w OBJ.cont.move(@); 8 z% v! F9 q7 t$ R2 E
' H$ Q R, P( S" x! L+ l+ g
NEXT;
) T, Z j8 r* A# D; L @.backwards:=false;- [! E" [8 H9 \' k: c* f# T
end;
0 E7 `' H) F7 Y& N0 M |
|