|
|
遇见一个难题,请教各位高手。
" @2 S/ C$ ?" y: ~" ?! r5 n0 U
L- n& c* e/ Z! S使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。/ a% w* O) D' I- [, i" b( ?5 J
( u2 J7 s* ~, {* Q* h H8 b需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。) r$ `% J' K) V4 h1 R5 j" n/ K# c! V1 D5 O
8 V/ @) t: j) n$ `$ G z
is% Z0 t/ G0 W. T2 s4 V0 n" U, a
i,m: integer; -- 整数变量
+ x# |1 }/ i& Z9 @. n1 J9 {, H Name:string; -- 字符串变量
% d6 Z1 R- ^" A7 ?, m0 E) } Obj:Object; -- 对象类型变量: D [4 |& n/ x
4 p" r/ W" s7 n- E A1 o' X" d/ Odo$ h, e$ S: K" V
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型7 X2 Y6 z2 ^9 w$ A w: h
Name := sprint("BA", m); -- 生产线名称
* s+ C" `0 i0 A& X7 p' ^ Obj := str_to_obj(Name); -- 转换成对象变量
& c5 c1 j" S; s- l/ u
9 I1 v# c7 D8 N* r \ FOR i:=1 to 100 LOOP h$ w1 y8 x& M
waituntil OBJ.occupied prio 1;% p, o3 V- G" y! d; \! M' m0 c! w
OBJ.cont.move(@);
2 A( O8 o' Q* p8 T$ _) a , D" v; _. e$ E
NEXT;6 P# k' \7 L1 y( t: ~
@.backwards:=false;" x p1 e5 m5 B0 p, T+ q
end;
' `! g8 ~4 _) X4 b0 _8 D; s |
|