|
|
遇见一个难题,请教各位高手。
4 @- F+ k$ J1 K" e. q3 C( }, H5 `8 X; ^( V2 O [: p0 A1 D
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。- X& \" R# x2 I- c" i, T8 k$ n0 n
, ^/ D+ {, O4 P) ?" x7 O ?9 |需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
* B: K7 o2 m! V/ Q$ l. V7 [+ b2 |. \; Y- n3 Y ]
is$ ], g& ~$ w2 W6 ^
i,m: integer; -- 整数变量5 q+ ]; o8 Z2 M
Name:string; -- 字符串变量
5 Q/ S9 x- }4 ^$ k& X Obj:Object; -- 对象类型变量
7 n {" ]5 L% ^: R. s. ?3 R; l
0 g ]2 p- X1 U r# w% S9 M4 Tdo
0 x/ q5 o1 o& } R1 B5 \ m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型. s: x# q" V- R
Name := sprint("BA", m); -- 生产线名称* O: `; b8 B& a- T
Obj := str_to_obj(Name); -- 转换成对象变量
# h, L' g# p# h* p4 I* p2 w' d/ C% ?
2 v. q3 R$ ~ q FOR i:=1 to 100 LOOP' D0 ]! {. g& P, P/ d( \! F! F# }
waituntil OBJ.occupied prio 1;
# M. E, F! d+ i. ^1 A OBJ.cont.move(@); " o" u r* u$ m# E
, g2 \3 M, C7 W9 I5 Q# @& u: k NEXT;3 [( O# j; n6 E$ i/ d% G' c. t
@.backwards:=false;5 z- _! h" w/ `4 f0 u% |6 u4 I
end;+ a; \7 G# W( o" S. V! B
|
|