|
|
遇见一个难题,请教各位高手。9 f2 E/ y i5 X+ G4 r' z5 h4 S [8 a
2 e; ~' F0 J2 h+ Y4 W5 C; W6 s使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
& s0 I+ G4 d- _8 X: k% D4 u) j Z2 b# x' Q9 j! i/ K
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
a# I) D0 q& F6 t' m1 e, |+ g& a: E2 k( z2 O& n. E* p
is
1 A) J2 e! `( `- v i,m: integer; -- 整数变量! O! T" i1 ~' w3 m# C. s
Name:string; -- 字符串变量
% [9 u' _2 L% {7 h Obj:Object; -- 对象类型变量
0 t# W. U: H5 d1 a% ^2 @0 k4 K( S
( ?8 O/ U1 M* U% N0 b. gdo+ c7 j6 L- X& X% i; L
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型5 r9 t. k* v' a0 X
Name := sprint("BA", m); -- 生产线名称
_7 G0 v* J% B1 V: ?3 G Obj := str_to_obj(Name); -- 转换成对象变量- u: p6 _: k: G3 g+ K
% J6 Q5 X7 N" N" J/ I7 m. Q5 L FOR i:=1 to 100 LOOP2 |, f. Y. j9 E
waituntil OBJ.occupied prio 1;
F2 x( J; p6 ]3 C0 ?* r% ] OBJ.cont.move(@); ; \ J- d3 ^. k5 K" x2 F- I$ P
+ S$ Q' C6 h' E* Y# y- x$ k
NEXT;& l" X8 p( v3 ^
@.backwards:=false;
% Q) l0 T3 y* Gend;
L& C j1 C, [$ D* R |
|