|
|
遇见一个难题,请教各位高手。
% k1 ?, \4 E1 V" Q M0 \6 i8 D( w7 `- `9 z! s0 n$ b
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。8 Q, K. i$ T' @; k; ^ z1 O( }) B
3 b. F& c+ k1 q" [) _5 G需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。9 }0 D6 u3 {' @
. p$ y5 Z4 _& R0 M( S2 ~' M
is
% y2 q1 G& x' S" K i,m: integer; -- 整数变量
# l! M1 V, T. `! A" G: H Name:string; -- 字符串变量
M1 T( h( x( F Obj:Object; -- 对象类型变量' J& o# L N3 T) r$ l& Z
* p# i5 E; Q8 ]% z8 Q
do* F3 E" s5 f3 F0 Q2 A& r" q
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型7 e. a6 g0 K- Z! j( ^* i/ ]
Name := sprint("BA", m); -- 生产线名称4 [7 r. |4 T: w; N- a3 @4 I& x
Obj := str_to_obj(Name); -- 转换成对象变量9 W. v( |$ P W
6 K, z- ]' |9 u1 O7 k7 D! r+ l
FOR i:=1 to 100 LOOP8 K# {( W5 v0 }# x% [" @
waituntil OBJ.occupied prio 1;
1 {7 t; `; p8 _" R. |" d( a# ~ OBJ.cont.move(@);
% o0 k+ @/ J2 _- d6 S3 e5 | - C. S7 a) z. F9 J# }3 H6 A
NEXT;( H8 ?9 S5 C) o% q5 x1 U
@.backwards:=false;
c5 k% s- `2 dend;
* z/ o. T$ L, J4 O. Y0 h( z |
|