|
|
遇见一个难题,请教各位高手。
' z. P- ~; `& e6 h$ V/ I1 `- D) Z5 y N7 B
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。# N& o4 u' i/ ]: K. u# \- P! F
% [% }* G- G5 [
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。% D3 @& Y f' k' W7 `& {" f
1 s6 ?, U* ^% O8 z) }
is0 C$ c7 H \7 Y" b) d
i,m: integer; -- 整数变量
4 `: ~" H8 F3 J! M" \3 H3 U& w% M' V Name:string; -- 字符串变量
! k6 i4 a8 S2 O- P9 u6 M# w: \+ L Obj:Object; -- 对象类型变量2 |' d7 L4 }5 G/ O3 q8 F( c
( z2 `/ x3 A5 k: \. J; J; Sdo) t7 G0 J/ \ g6 m: b9 y
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型( X; ], |' e0 N/ w. X7 ^& V
Name := sprint("BA", m); -- 生产线名称
$ V _ Z; ?1 z8 P Obj := str_to_obj(Name); -- 转换成对象变量
. Z/ ` u1 H9 G, N! T" w( V" x$ U
9 U, b, z& i( N! l& T$ r2 Y FOR i:=1 to 100 LOOP/ j" d* M( w1 f# h
waituntil OBJ.occupied prio 1;
2 G) D# G& k: F4 G6 V. a% V+ U OBJ.cont.move(@); , p" e/ U* x( t6 C8 m0 l+ A* J
) v! N' U! K9 Q- ?
NEXT;
+ b, U7 V; p3 `& k4 Z# r% j @.backwards:=false;
; U2 V& d3 K) p) Q" [5 V, b' cend;* M4 p4 Q) S+ W+ h2 r! A' l
|
|