|
|
遇见一个难题,请教各位高手。7 A: s, ~, y# T4 D1 w
8 v6 g) C% |3 M8 G ~; w* h使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。7 K, y, b1 e, u$ P3 s
; C' w; m9 P# ?4 c# v需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
$ O B) ]# o$ E* w! x7 R* Z: ]4 W0 ~. b7 F6 L
is3 D" m* ?/ F0 L) \
i,m: integer; -- 整数变量
' i1 T! `# e4 G3 C5 c Name:string; -- 字符串变量3 B0 E# t a# v/ @) q) r# u
Obj:Object; -- 对象类型变量
; i3 i8 Q0 ]0 E" Y$ M0 D4 f
9 I2 ?: r+ l0 i# p/ vdo
3 Z# N3 u/ ~# m, Z4 D% S m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
, R+ H2 A7 Q7 x0 M. v; m6 O Name := sprint("BA", m); -- 生产线名称 d( N0 j- B b A4 n, [3 I: l
Obj := str_to_obj(Name); -- 转换成对象变量
7 S' I% s9 E, U2 e2 {: v
+ B: V/ o5 \) i c7 w, \ FOR i:=1 to 100 LOOP
$ ^8 l1 P3 l0 \8 s4 X( g) N& n8 i; [ waituntil OBJ.occupied prio 1;
3 l# S% E" x& z) x/ g& G' F+ L OBJ.cont.move(@);
& C( a( T% B$ o% m$ ^7 S
9 {8 X& o. b7 D$ V/ `, i NEXT;
+ l3 m, {; E! m S c3 s! v1 n* v @.backwards:=false;5 J) J8 t9 M8 O8 r1 d
end;
* m5 |. s. {; y/ b/ ] |
|