|
|
遇见一个难题,请教各位高手。
" T9 y1 c+ d, R5 m* S# d8 T- N* j/ O) x
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
1 u0 T$ f9 U: `4 j5 X2 {9 L
+ a1 G/ F- x9 s5 o% C需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
0 |0 e/ d, c- Y; h
( O& L' a9 p/ H% [ is7 m& g' x5 m- Z$ n b8 O9 j
i,m: integer; -- 整数变量
0 f7 i3 f) y* r. u6 Y5 t Name:string; -- 字符串变量
' d7 I" h' r, v4 N0 s& V Obj:Object; -- 对象类型变量
/ J- q7 W( D. N& e Z) U" L" Q$ A8 |! P t
do+ h( @, u) y8 ^" o" e1 l0 L
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
4 i7 d6 d8 r0 D ?/ r3 m t9 O* p Name := sprint("BA", m); -- 生产线名称
7 d* R- d+ _3 z, [! y Obj := str_to_obj(Name); -- 转换成对象变量+ e- \. d# {; w* u: _9 [! L
5 y! ~/ d- F6 w% U+ f
FOR i:=1 to 100 LOOP
/ J2 A+ ^6 ]' A* o6 F waituntil OBJ.occupied prio 1;+ Q! c$ s, F7 p3 z; O% T# g3 {
OBJ.cont.move(@); " m( p8 S" q% ]
4 W5 V s7 z3 c a
NEXT;
+ y$ m( B* r5 } @.backwards:=false;
7 ~, W' ]. k4 a) g* ]8 T7 ?+ j" _- Vend;
2 t6 l& c* N& s' f d; R, e |
|