|
|
遇见一个难题,请教各位高手。
+ \* i) Y7 d b, U4 c: ^ V2 I, K# E( z7 |8 Q
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。 Y; ?. V5 |/ Q; n2 Y
) V0 T+ ?( }2 R' v$ B, w; {2 o需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。+ B3 Q- G4 b) }
) o/ ?- p0 L& |4 O
is5 y8 F* `- h' `- n' K& Q8 W, ]: l
i,m: integer; -- 整数变量& Q+ Y& y, G# v% A% v
Name:string; -- 字符串变量
" p( J' h$ _8 K' ^' w) o Obj:Object; -- 对象类型变量+ c/ j& c7 E2 R1 H0 U+ `7 `. ~. ^
( p1 \% P0 i. Pdo
$ {! J' q& v. N0 Z m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型( y8 r2 q+ g' Q/ r4 [% ^ h
Name := sprint("BA", m); -- 生产线名称
/ Z0 \' Q5 Y/ k2 n5 f+ q Obj := str_to_obj(Name); -- 转换成对象变量0 Q! F& C0 x9 Q$ P- @/ `& c/ |
! h, @- @7 ~ c8 ~
FOR i:=1 to 100 LOOP& e: n8 J2 R* B4 l) s) {& }
waituntil OBJ.occupied prio 1;
8 _; Z5 V6 |5 l6 {! U) B/ e! { OBJ.cont.move(@);
, l$ i( n5 k4 Z" i5 K4 g0 B 7 Y8 H) f* i( g4 h( t" r6 i& o( |" X
NEXT;
' F! ^$ ^% S0 _- H @.backwards:=false;
4 u( ]' y6 ?, s! ?. R0 h! N& z) `end;8 V& K: R W- R$ m
|
|