|
|
遇见一个难题,请教各位高手。4 F# t1 z0 V2 U) X
4 g( L6 I- E( v# g使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
8 t& b+ u! k, T x4 Q2 g2 t" z% {9 v- r+ }
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
1 A% u4 p R1 l# _
2 U" L0 P8 {2 d7 C' H is# U) a& Q% p2 Z% ?7 m- m
i,m: integer; -- 整数变量
4 h7 z. w- o, q8 V$ }" {% q Name:string; -- 字符串变量$ d5 A& S( A7 y, s! m+ \
Obj:Object; -- 对象类型变量( m7 O6 N- K0 f$ V% G7 u- k
M( X$ L5 D8 w
do' U, W$ q; _# @2 H; U+ q0 X
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型6 ~# Q. f2 D3 }7 ]
Name := sprint("BA", m); -- 生产线名称" T& ]3 U8 i, m" h
Obj := str_to_obj(Name); -- 转换成对象变量% u: y; j! i Y0 Q& c" \0 {
8 F' a" D) `3 O& s
FOR i:=1 to 100 LOOP* x) S4 w, C% a( {
waituntil OBJ.occupied prio 1;7 B2 l8 F. n1 r+ G" B1 p/ }
OBJ.cont.move(@);
( ]/ i2 M. K7 H. b
}( i6 K& B. l/ Y. W0 X+ ` NEXT;$ y1 Y% @8 y. l" i9 L. b
@.backwards:=false;
8 s3 y* \9 H, s) E M; }. tend;
" f/ p% b l2 C4 H, r |
|