|
|
遇见一个难题,请教各位高手。
6 C) W y M5 K8 h, J
0 t: `" z/ C* Q) U使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。2 I2 Y. U- C6 d2 |% ?) ]; R. V
" A% ^. z, Y# J0 a6 O4 j' l8 ?
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
" N2 x) a8 S+ \" e( |9 ?2 H' o
% @- Z- F: ?' Q- p! o% a3 S is
* m% W p3 \+ c3 Z M+ S i,m: integer; -- 整数变量- m. p0 A# i. P6 q
Name:string; -- 字符串变量
- o& I. L- M5 m/ a# V+ }' i Obj:Object; -- 对象类型变量: O, J* U: q! K0 s
1 @9 x/ t# W9 I1 X" d
do
, j2 J) [0 F6 d6 p m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
. J0 W) r6 a1 n! ~$ z2 O) [. Q Name := sprint("BA", m); -- 生产线名称! V, o1 n. X( k5 m6 j+ I* | l
Obj := str_to_obj(Name); -- 转换成对象变量) |0 E, {8 N+ z
- A( I# w& ~9 g- z) ]0 Z& q0 Y FOR i:=1 to 100 LOOP
( A1 r- ~ k: E9 [" a waituntil OBJ.occupied prio 1;
5 }" v i ?( F# h% |% D9 k, k8 v OBJ.cont.move(@); ; V f. @- A& y4 P* J
8 }; y$ z+ L8 {7 i
NEXT;1 T) U- a& `& L1 i
@.backwards:=false;
# X8 t R I2 d9 R& Qend;
7 Z2 V% y6 i/ r5 w+ y) d n+ o5 r- R' x |
|