|
|
遇见一个难题,请教各位高手。, l( Z7 g" }! i8 R/ O$ `
5 m5 ^1 X7 H9 S: Z7 N: X7 T/ M4 L
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。5 K: Q8 x) r, T m5 U0 p
' ~% L+ ~- `! Z& J4 Q3 V2 ?
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。/ h, _) _. \9 M! u1 L/ q. P! I
0 M7 U" f4 I8 I# Q) T2 E is9 \# K# N8 N! A% X
i,m: integer; -- 整数变量
) E3 m" C, C$ N0 n+ v+ } Name:string; -- 字符串变量. }& l4 N0 C2 t1 V+ J3 [5 Z6 M
Obj:Object; -- 对象类型变量6 K1 S# C8 z; l1 `# ^% S( }
4 o& q0 F% s7 X2 j& u8 A
do
' N4 j. q" a8 ]9 c m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型/ d9 P4 G v X! i4 l
Name := sprint("BA", m); -- 生产线名称
+ u4 W3 I- {/ |: Z0 s' z Obj := str_to_obj(Name); -- 转换成对象变量
s* M! a3 l; d " P4 S- Y( G# Q2 P
FOR i:=1 to 100 LOOP
: {4 }; c* I) q( j7 X* O& {; F waituntil OBJ.occupied prio 1;
4 w, ~" ~- }, w0 T7 s K4 W OBJ.cont.move(@);
. d# s( R( [* ~- L # L- J7 Q' D% J3 @
NEXT;* ^5 n4 ?5 }9 l5 u
@.backwards:=false;3 Z3 O$ v' W" y b L" L4 w
end;) f& k! x& s8 E
|
|