|
|
遇见一个难题,请教各位高手。
8 e3 f" U! z' P/ V R4 d2 L: k7 ^: Y6 Y$ a, F) ~, S8 u* ~
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。9 l; n9 a( `4 r% T
, T7 Q6 A- X7 o, K# ~& o
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。, b$ X; ^- j: q0 A
) F1 ?2 n+ D: z4 J4 h2 {5 f is
F4 u- a; ]* s* U2 r1 b i,m: integer; -- 整数变量
+ F% ~! W, C8 L, E" |% O- P/ o Name:string; -- 字符串变量/ w( }- Y# E1 F3 Q& q" Z% o6 E
Obj:Object; -- 对象类型变量
! g8 N7 h% I: Z% ^9 ], O- h1 Y3 t# }
do
$ Z* k) x- V; t5 @/ g: Q1 l m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
5 h# S) d' G. F% M Name := sprint("BA", m); -- 生产线名称* `% K) N9 x+ w% D" z0 L" H
Obj := str_to_obj(Name); -- 转换成对象变量% s `2 J5 n0 X% {1 J; b3 J# c
) ?8 {" S9 u( {8 ]' i) C$ T
FOR i:=1 to 100 LOOP
' D0 ^# j! a6 n# Y+ J waituntil OBJ.occupied prio 1;5 a) k+ e/ ?" F5 Q% S4 V5 y
OBJ.cont.move(@); $ U/ ]! U: t' q3 v1 o4 ]& C
, a& d. H I, w( o! q! @7 v3 @
NEXT;1 D& ~5 q# h l
@.backwards:=false;# q5 b& O, d) Z) k0 G8 U& l5 l1 r
end;. D( R; \( D, p7 F
|
|