|
|
遇见一个难题,请教各位高手。
( X$ E R' B: O
9 c' n1 z+ t6 ^0 t8 C" Z使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
4 @$ t. j- w! s& m6 R! n; i; \, x9 B$ |4 r* e4 D
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
+ x! G! u; K9 j+ p: q4 q, s! G
0 R4 C3 B* P( A# ?# x is0 u1 H) K' K$ q6 l# P
i,m: integer; -- 整数变量0 f8 Q4 y/ e! X# I0 F# z
Name:string; -- 字符串变量$ u, z$ i" m- I+ H: }
Obj:Object; -- 对象类型变量
" h2 d+ u q0 C- E8 j$ J' Z! I Q4 \4 Y t* x
do. @1 P" E& S" t2 [, p
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
' e$ f4 P/ L8 _3 o+ y0 i Name := sprint("BA", m); -- 生产线名称8 }9 [ z0 @4 R
Obj := str_to_obj(Name); -- 转换成对象变量
, Z9 R6 o! w' H" w ( E3 u8 W% \/ w5 g: u
FOR i:=1 to 100 LOOP* e# b' b# d4 T: m# i( n B7 I
waituntil OBJ.occupied prio 1;
0 s/ A9 b, L' a1 A# @. A: H OBJ.cont.move(@);
, P. s8 p7 P- O/ p, h# i9 c, s* V : t Z7 I d( e8 x: I
NEXT;5 i$ n2 \: A x8 W" Y. j% h
@.backwards:=false;
; D& _# O2 s' [* C( xend; m" W# {* Y% y' \" F
|
|