|
|
遇见一个难题,请教各位高手。
2 S! o4 l$ t6 S# B8 U1 d, N4 F0 {* y
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
+ T& t, [5 F3 j' }
" t% m6 A7 w: K) V, V0 q" w$ ?需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。6 A- O9 x, J1 Q% F
/ U$ {' o( E' q' W" A is& B0 ]! j' @. b9 M1 d6 ?
i,m: integer; -- 整数变量
" m: \- L( y* Y& [& i' J Name:string; -- 字符串变量+ {0 f Q+ n$ I, A
Obj:Object; -- 对象类型变量# j6 U9 Q. N. [
) k" f( e( `0 D6 t0 q7 O4 A6 M8 s9 ?5 tdo, S1 P J6 ^( m) C
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
- b& V2 w V0 V. n Name := sprint("BA", m); -- 生产线名称
. J# O( ^+ @9 r8 z- u. C$ k" u2 A Obj := str_to_obj(Name); -- 转换成对象变量
, V8 F0 Y1 W/ n$ s! w( y ! _; y+ A: t! o* L( K* Z4 o
FOR i:=1 to 100 LOOP
8 V7 S# J. ?% q8 K2 z4 [* P waituntil OBJ.occupied prio 1;8 F B9 c M2 Y1 h$ [
OBJ.cont.move(@); $ Z0 @3 h G% n* ?3 V/ o
6 Y+ \4 n% D3 V" g
NEXT;
7 `* t8 X' l& y! n @.backwards:=false;
$ J) N, P6 C: p0 A3 y: b" pend;
7 X2 j6 X0 ^8 h. s |
|