|
|
遇见一个难题,请教各位高手。+ [0 q. g3 [+ c7 c$ ^% P- D
8 X _' Z; A$ s. U3 Q) ^使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。8 s( b' y; C3 N- W- t
3 n# N: ^/ U5 D: S6 [需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
% q9 Q: ?1 A: b+ o; n) D; u) D; B% E! j R1 o9 R
is: W( V! r7 l g4 }3 F5 k
i,m: integer; -- 整数变量
0 t6 ?; s: D1 ?" ~4 J5 @ Name:string; -- 字符串变量
) E4 A' ^3 z4 U' ?+ {2 H Obj:Object; -- 对象类型变量4 D1 z4 S6 n3 G, O9 S- j0 Q
! ?! z# V6 }/ B% `
do! [& j# e; y3 |0 L! ?
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型$ H. `* M! M6 S7 r3 ]/ v
Name := sprint("BA", m); -- 生产线名称& S3 \' X ~; n$ x7 S: r
Obj := str_to_obj(Name); -- 转换成对象变量- H# ]' q4 G1 t9 ?! C6 R! h/ K/ S
4 q# H' q4 U: t2 P4 `! h
FOR i:=1 to 100 LOOP: P$ T* Q7 j, G! ~& L
waituntil OBJ.occupied prio 1;& J1 |0 `) o/ X; y% P- f+ I; m
OBJ.cont.move(@); % Y1 ?. |) X; c( G! J. O9 T/ L
1 s% p# i3 q4 A( U2 x g
NEXT;
) V$ O# ^4 f" | @.backwards:=false;8 {6 w2 h+ l1 y$ V. L( I9 v
end;
+ v _6 D( t1 G! Z' B; x% [8 I2 i |
|