|
|
遇见一个难题,请教各位高手。5 N7 d" l1 X( L* E2 I" |
6 B( v& |# J( s$ \$ Y1 c使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
% o1 E$ `; [7 S& [. T) g6 t, ~' [3 J4 I$ L( v
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
; e6 V' g9 b! Z5 R+ i F% ?- d7 [1 q, m, @" P9 O2 [6 [
is* b" c; f$ |* O% a+ S
i,m: integer; -- 整数变量
5 Z d8 E- }& K1 R% I, ?* [ Name:string; -- 字符串变量
$ Z( c" r/ m K, t$ b3 K Obj:Object; -- 对象类型变量
# r8 X& s- U I4 x8 J% I7 G: O$ q: e( ]7 p. f H! Z8 v
do
' J, i) Z' {4 w# `- z- k2 j m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
6 f$ p! R! k1 I Name := sprint("BA", m); -- 生产线名称* U3 A5 ?4 v# _3 B, s$ H
Obj := str_to_obj(Name); -- 转换成对象变量
$ u9 h+ `3 |' [/ u 4 w) N- r3 K; g
FOR i:=1 to 100 LOOP
2 U# c3 k$ @! W7 Q* G# H- F+ s waituntil OBJ.occupied prio 1;2 Q: V& B R' I. Q) B! z
OBJ.cont.move(@); # d" h! S/ W* P2 l3 C1 W
3 N- m) |( v8 ^! b8 w1 g5 a. \ NEXT;8 X7 m w+ i$ F* Y1 B
@.backwards:=false;
# r6 }7 L- m7 x/ Pend;% u$ J! p2 { Y6 s: H w9 L
|
|