|
|
遇见一个难题,请教各位高手。
( K" A. N, J+ g( a& ?) S; X6 ~" C; f' V& w" j
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
+ n% }1 M6 c( T4 v/ v; e) t5 T* z, w% p/ L
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
' Q: I( M. k- j, N& i( }7 w, B) F1 V; ?, s
is& K! z8 F, i4 H
i,m: integer; -- 整数变量
; h& D- c, s6 Y8 D0 T* e Name:string; -- 字符串变量
0 E8 w7 Z+ X9 \+ Z* P2 l# ~" i! q Obj:Object; -- 对象类型变量
0 Z8 F+ h: ~0 j2 o7 c
: t2 |) j1 b _' s6 [do& `$ j+ q$ j' r3 g) D8 s% |
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型6 ]9 _, P: D6 Y! \
Name := sprint("BA", m); -- 生产线名称
$ m4 O- f l. ]" ^ Obj := str_to_obj(Name); -- 转换成对象变量1 g7 Y2 F0 V6 N+ u# }3 B
5 B: e, y( a" e FOR i:=1 to 100 LOOP( I* ~* \8 I1 F6 O# c1 H
waituntil OBJ.occupied prio 1;
% s5 V- n+ B0 ?) ~9 e! V OBJ.cont.move(@); 5 \: o8 l# [6 ?: j+ c7 C
& s* q2 I( X1 D0 S3 | NEXT;
- D5 r- v- L& Z: r" f; N @.backwards:=false;! E8 C4 |; C* @% m7 K6 A0 U( ]" E
end;2 F- @' O/ } K. o" v. S
|
|