|
|
遇见一个难题,请教各位高手。5 K! b& w: O8 ]* P- c5 ^
8 d" K8 d" ^" z! Q
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
% r, w6 V1 ~- s/ y3 r: e8 z9 ~8 X
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
' r( z# c' I1 I* j5 e0 J9 j# i8 q; i. q' _7 D; T6 T
is B2 S6 d+ U+ M
i,m: integer; -- 整数变量) U- D; j# @" U3 |6 ?% I
Name:string; -- 字符串变量5 K4 I$ s D8 J2 H+ e" `# }
Obj:Object; -- 对象类型变量
4 h- W! e6 z- D
) f1 r% F8 z3 ^/ e+ x% F3 |do! ?! @; k$ @4 j4 M5 G0 ]2 |
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
) u, P/ P: \" o+ ], X& }$ ~& \ Name := sprint("BA", m); -- 生产线名称4 C+ Y( Z: S9 `5 _4 P
Obj := str_to_obj(Name); -- 转换成对象变量
" _+ T* i- T' ^
: p5 E# J! F3 m5 W( }4 E, T, e FOR i:=1 to 100 LOOP$ t Q4 Q9 T+ ~7 i% _8 H/ _/ S) F
waituntil OBJ.occupied prio 1;
. \5 u% _5 u# l1 T3 p, P: x, w! w OBJ.cont.move(@); - o4 i% H% d; B: r( N3 t
: x( Y7 e* Y, y* E( r
NEXT;. q& M! ] W: \
@.backwards:=false;, _( h* _ `1 I$ S4 P" A1 ]
end;
. [5 \$ J/ Q( j7 X% v |
|