|
|
遇见一个难题,请教各位高手。 a/ y8 d6 U- r9 N6 J1 B
/ D5 C+ Z" k8 Z$ ~5 l使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
2 t! c# E) A4 K4 R3 }7 Z% I& W2 g& {6 ~6 K0 ]4 ]
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。1 U7 L, ~5 H# Y6 h, B
8 C ?3 t7 B W2 C7 K/ H
is
! r5 E" B+ A0 W8 x i,m: integer; -- 整数变量
" p/ |8 Y. P9 r" g Name:string; -- 字符串变量
) D+ l: d* ~ M/ [0 L! o& G; p) X Obj:Object; -- 对象类型变量
, Z5 U! ?) _: w/ c
! j2 Z7 l4 \) w0 t% ~do
3 V3 T! g% m% @6 j4 D9 G m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型% P( H5 v+ `# m" H% ~3 J" v
Name := sprint("BA", m); -- 生产线名称
7 V5 ~4 E. K- V! P5 x f! |- } Obj := str_to_obj(Name); -- 转换成对象变量
0 h+ V$ ^- I# W" u7 ^: M8 \
7 w& j+ s0 i$ I5 U FOR i:=1 to 100 LOOP: V( \0 W4 Q" s
waituntil OBJ.occupied prio 1;( u' T6 ^( P! |- |$ O4 i3 J
OBJ.cont.move(@); ' k6 t4 l7 s! |" |+ r% m/ ^
9 @* L6 j; Z9 {/ C: g9 e
NEXT;
+ {$ n2 ~ S# U: [ @.backwards:=false;" e% F4 b3 U9 F8 G& S
end;
' ~2 P* o7 X+ G, o. C% V) t |
|