|
|
遇见一个难题,请教各位高手。& A. z. E+ m9 [! |! z
$ L# V7 l* \! f1 g+ c3 b
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。' K y. g, _% x. J
2 A& j6 e$ V. r7 g1 A* b
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
9 K7 b' y, `3 U& x% a A& ~4 Z1 \6 N. D" K# |9 u
is b4 @! Z; r3 {
i,m: integer; -- 整数变量
& o( y9 e" q# j2 n Name:string; -- 字符串变量6 d3 T' l1 B% D# M8 h; G
Obj:Object; -- 对象类型变量8 s" l! Z$ K3 a0 L8 f4 i7 U
7 Z% d6 |& g$ u' ~* c
do
1 Y+ F% d4 Z! i( Z) ^( ? m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
% U1 d. `1 k9 q+ q; Z Name := sprint("BA", m); -- 生产线名称* P" x2 |3 G+ T3 z; R% k
Obj := str_to_obj(Name); -- 转换成对象变量- @# S0 ]; O0 K" b6 Z8 P
, v1 |2 `2 L; K5 V* F: J( r FOR i:=1 to 100 LOOP1 r, r: s) d% G* Z( U6 P# C
waituntil OBJ.occupied prio 1;4 U3 R+ I9 ^0 V2 B0 h* o) g
OBJ.cont.move(@); % H0 e0 |, Q: @9 O6 u4 K
; x! w. @; N* {! i4 G3 l% J; Q
NEXT;4 D# ]' ?" v I4 W6 i
@.backwards:=false;
) d( f. H: ]$ Rend;) f% G) o# ~+ S: C- l
|
|