|
|
遇见一个难题,请教各位高手。
7 U/ I9 ]' W! {3 V. T* m4 l7 |: r! |0 |8 r
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
4 K" L0 ^4 n P, F5 T9 I- e; o
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。( ^; `/ v6 [6 N: U' H' V
* u. y! F1 q& H: a9 N7 e
is. F" F' d9 E# s' e+ |( w1 F( k5 b% |
i,m: integer; -- 整数变量; L& _2 ]! V4 P+ a
Name:string; -- 字符串变量" C1 R- h( q" l1 e
Obj:Object; -- 对象类型变量
# ]$ V) x" Z: F3 {3 _; f
/ u# U3 \/ D5 |& j& gdo' u5 o8 i' \/ c' y: u
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型8 ~6 c: g N: w0 t
Name := sprint("BA", m); -- 生产线名称
; T, d) q0 l I) E7 n Obj := str_to_obj(Name); -- 转换成对象变量2 \* ^; q5 d% g4 a# Y4 f9 r) S3 N
6 g$ i7 D4 p4 l S9 K' \ FOR i:=1 to 100 LOOP
% ?7 A( I& F8 m2 _/ B- j5 z waituntil OBJ.occupied prio 1;1 p2 O: X0 S! i
OBJ.cont.move(@);
7 z$ v: A# j5 f + h7 I( T; z3 m/ S% [
NEXT;* Y9 ?9 E# Z7 S3 {5 Y; d
@.backwards:=false; p* d$ `* `, q; ]* F
end;4 z* D! z. U5 G" S# _
|
|