|
|
遇见一个难题,请教各位高手。% t) T+ S5 H9 a# l) ~' a
; @) X: p+ j, J& M3 D( f( g4 q! l使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。' V* R8 J. e# U9 a7 j/ X; N" [3 d
5 [2 d# `8 t" @4 A- i I
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
* m3 O6 }/ u" D( `% m/ y- f$ r- E
is
1 I6 k0 @2 i p) O( W) Y$ Y9 W i,m: integer; -- 整数变量6 }: v0 |6 r0 b5 L$ v
Name:string; -- 字符串变量
: E/ }9 b, t: y" s Obj:Object; -- 对象类型变量
6 A& n: | B; \1 [9 J* F6 s/ D8 J: a9 F" a9 |- n* i) B
do! B& x! C( C# a# U2 E, F' ]
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型0 Z# _' u8 \/ [/ Q( z0 _! t( [
Name := sprint("BA", m); -- 生产线名称# b5 t% H- X. E3 |: `
Obj := str_to_obj(Name); -- 转换成对象变量2 _# ^3 ` s, P8 i
+ n7 ~8 b' J' W
FOR i:=1 to 100 LOOP8 [$ k) W3 G0 r3 G# x
waituntil OBJ.occupied prio 1;& q# T, Q+ b. U* z& q0 @4 y9 g" e
OBJ.cont.move(@);
p* ?9 v8 E! B$ Z6 y 7 P; ]/ M* u: s4 ?( J
NEXT;/ a0 K. z' [5 z
@.backwards:=false;1 _3 _# k2 n ?3 l/ y k* Z
end;8 A% ^$ j& \3 c" O
|
|