|
|
遇见一个难题,请教各位高手。! }3 p' A, K. V ~- h7 V" T2 v4 \
# q0 f& o( b/ p# y+ X) r' g9 k
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
. G. c3 e4 U' _8 N7 ?0 t: F% ?4 B- Y8 a; h
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
: P! v1 W6 |/ v. \8 _, V( _' u8 ~/ Z' I
is' V3 `# l, e, L7 D: R' h
i,m: integer; -- 整数变量+ A+ W2 `0 H0 `- v
Name:string; -- 字符串变量
4 N& ~5 ^5 i: e/ F; [/ }& ? Obj:Object; -- 对象类型变量: t" y1 ]4 Z& f- {* q3 y
5 Q2 c4 S; O' S, ?% C0 f* `do5 H) s- R. j J- m( A/ t. g' ^9 B
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型, t) l+ Z9 w% k$ x" e" G3 P
Name := sprint("BA", m); -- 生产线名称+ n7 d( a5 |& a/ |4 E* T: C3 h
Obj := str_to_obj(Name); -- 转换成对象变量
7 L: F1 _! L6 L
- k# V+ k# ?" @2 s! S3 M, p& x FOR i:=1 to 100 LOOP
4 L' @: s( S: q4 a; f; a* c waituntil OBJ.occupied prio 1;( E! _8 \2 A( N# [9 f
OBJ.cont.move(@);
+ W/ V- ^$ w' c& @- n ( B! P! V! b6 a- W8 n
NEXT;
% ?7 P2 Z5 n7 G4 f+ T @.backwards:=false;* d6 `! B) ]/ U6 ^% ^- W- F; [
end;, a: ~7 Y/ q/ P/ Y
|
|