|
|
遇见一个难题,请教各位高手。 _& ` E+ G3 {. h$ ^7 {
# a! {2 Y, V8 v. z4 T7 n
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。3 Q2 h! ]- H2 T. w" p8 x a+ i
7 _; K. g" j m; O8 b E* i: N
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
+ H+ p, e8 F8 ^% p5 X( a
F G" u" \8 q+ l is$ h6 o3 V2 m- i; u; X/ c
i,m: integer; -- 整数变量
- c0 {8 F: P) j- w; L' n Name:string; -- 字符串变量8 s% P# P: }7 i+ T! H
Obj:Object; -- 对象类型变量
( z9 A. T* R9 k0 A
" W" n, e5 g" ]1 N& odo
- B( I" o3 ~& F& N+ q$ G m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型- H$ _. m1 w4 U: |+ U
Name := sprint("BA", m); -- 生产线名称
2 C. D; P5 g$ Z1 T* ~ Obj := str_to_obj(Name); -- 转换成对象变量/ `$ u, R l: I7 d
. C0 E: A4 A* Y6 B/ j* |- Z2 f2 Z FOR i:=1 to 100 LOOP) `6 M5 G) ^) g1 ?" n3 y
waituntil OBJ.occupied prio 1;8 v# o v3 I! h. ?' W
OBJ.cont.move(@); 7 u4 m/ Z: B: y
( e$ i' i# |& i' A% O. r# l# b6 I NEXT;% p% r# `2 I0 a! V% E
@.backwards:=false;2 q6 f- u& ^( Q8 \
end;1 L" }4 O8 j5 P2 @3 q: W
|
|