|
|
遇见一个难题,请教各位高手。6 g7 |0 s0 R! N6 E& A y
9 n! {3 @$ q8 G" C. d& [
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
) X6 z1 F' `: w( Z8 @+ \, x
5 Q& H. ?4 K! ?( }5 l9 W2 b需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
& L8 Z) k- L& C. L5 _* \- |( f6 w& S+ W. D! X9 H
is
# M. p, V7 Y% p0 @, R8 k, D i,m: integer; -- 整数变量7 O# I. l. U! P8 h
Name:string; -- 字符串变量
/ d, _; K. M+ `3 Z3 p8 K: V Obj:Object; -- 对象类型变量
. ~/ `+ g+ h) w2 d/ J3 s
5 c' U a. Z) @$ j3 O% P4 U. S U! g' vdo4 ^0 D9 I: n' c% L& `
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型% J- z q+ {& E. O2 X
Name := sprint("BA", m); -- 生产线名称
1 f" Y( k* |, O& }7 k/ {; n Obj := str_to_obj(Name); -- 转换成对象变量. a* Y# b' L0 P9 K
8 {$ e6 C7 C0 d* I; z* C# z
FOR i:=1 to 100 LOOP
# w# d: t. }8 O# Y) Y, o- J& Y3 ?+ |9 O2 Z waituntil OBJ.occupied prio 1;+ J$ U) R/ A/ L# J
OBJ.cont.move(@); ( h8 i# @5 T6 T7 G7 Q' S
/ G' G2 L4 q5 }# e9 q NEXT;
- R" v" y% i5 D' z" J; {2 F- v @.backwards:=false;, x4 _- d% u. R8 C$ p7 |. h# z
end;
" K. r2 I" v! M/ n1 f0 h |
|