|
|
遇见一个难题,请教各位高手。5 ]# P. {% F* x' j0 {
9 O0 ^0 w1 ^3 N R
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。7 {% S. m& g" O& d9 Y- {
) v' `" d8 X/ `0 d O, S需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
. |$ k2 Y( ~6 G& _6 u: i8 p t6 o0 @1 K; t6 I( P
is
+ ^7 F/ `! |! Q' d: ~ i,m: integer; -- 整数变量
) Y3 P j A* g( A% k( K Name:string; -- 字符串变量
9 x8 A# S' T7 X9 Y" s9 l# S Obj:Object; -- 对象类型变量
- r& U4 x2 g. h; _. ^" J- s. g% d. }/ L& H2 H5 W: }3 H* t" E
do6 v4 Q# {. ^5 ?0 k& z& [3 c
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型& M' C8 |6 w ?
Name := sprint("BA", m); -- 生产线名称! p5 _/ G% s9 }8 J" [, Q* A
Obj := str_to_obj(Name); -- 转换成对象变量2 s2 y" W6 F$ S* H: X8 V; d
, K9 ~3 R1 @- s3 o- B+ J
FOR i:=1 to 100 LOOP
& P O8 T' Y1 ~( p+ o waituntil OBJ.occupied prio 1; m2 g R) B1 Q& e9 m+ |
OBJ.cont.move(@);
) W, s! n `* e6 T! \4 P5 `3 R# P # _! h9 P8 Z) {
NEXT; V3 F6 ]! N6 I8 `; G1 w) H$ m1 X" ~
@.backwards:=false;
# \2 X: g# S: H' C4 A6 ]* dend;
& g) J9 {, E( |5 Z' O |
|