|
|
遇见一个难题,请教各位高手。3 E/ |- b3 G7 R( G
$ Z/ {6 j+ Y/ I3 z
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
; p& s7 D. p7 K( z. q/ c1 C% ?
$ I3 A6 [& j4 c, `1 Z5 q6 P4 d4 z需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
0 i* q5 ^7 v4 }8 Y+ H- G
# e% {* i0 o' `5 a# j4 ^4 f3 e3 s is
8 W |, h+ M# K/ B i,m: integer; -- 整数变量
) H$ ]3 l2 p- }" ]) ?0 b. F Name:string; -- 字符串变量
7 y0 D4 A$ Z7 x3 q' t& l Obj:Object; -- 对象类型变量$ A( u! L# h" `2 G( K U: k. @0 }, M
* N Q2 M0 l# j; b' B
do+ i E' t( S7 ~- E! B0 h0 M
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型* y9 l% h# A' d$ ?+ |! z
Name := sprint("BA", m); -- 生产线名称/ M- s/ m0 x/ _1 l* h5 |- f
Obj := str_to_obj(Name); -- 转换成对象变量
% u. s6 H' X% L& Z
y6 O+ e5 m2 @3 J- h/ }- Q! z9 P" N FOR i:=1 to 100 LOOP
5 W/ h' W0 V+ C! D& J0 Q/ s waituntil OBJ.occupied prio 1;
8 Y7 m P. E; x* _& W OBJ.cont.move(@); " D; Q& a) q' C1 a. B
) @ d* y* R' e- t NEXT;3 a, A: N% `' o' k% E! M2 W( n
@.backwards:=false;
6 T9 r: F/ M+ i# D2 J1 a* fend;
$ [9 r6 W' o, ?; O" _7 a |
|