|
遇见一个难题,请教各位高手。
0 s. k, ~4 y2 G9 Q0 z+ h* X+ K% }% H& n! U1 ]; ^5 c4 I' N, [2 c! W3 p
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。, u* p- Y7 `* i1 O N9 b
# [1 r- ?+ w: J9 P) {- a/ g需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。# G+ ~' @9 k1 K1 T
, i0 h" M: J2 y
is3 p9 E7 N! i0 ]+ h, Z. t
i,m: integer; -- 整数变量( [' |( h' V B3 X& m& R! R1 m
Name:string; -- 字符串变量
$ B! a- F5 T; ^ Obj:Object; -- 对象类型变量
- B" ~9 E& P# @, |1 Q" Z+ c8 ?* ~8 J
do
3 C, c+ q; G& K; ]8 w m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
/ B; u$ A4 b V8 N Name := sprint("BA", m); -- 生产线名称
! l5 T/ ]5 h! ?6 j# }$ Z Obj := str_to_obj(Name); -- 转换成对象变量
8 Y4 U4 H* |' x2 P# M( } # |3 ?) M* G0 [# @6 Q
FOR i:=1 to 100 LOOP
3 c$ U2 z$ v9 ^& d! } waituntil OBJ.occupied prio 1;
- G9 R7 {6 J6 ?# { OBJ.cont.move(@);
: V" q& I. m1 D+ C$ M
+ u! U; ?% v& D% A: w- O/ ?4 [ NEXT;8 Y. X- }) H* N2 e' m$ A4 B6 f
@.backwards:=false;/ d. N/ S7 @7 H9 `( B
end;* f1 |& [* S0 x& G$ N: u e% S
|
|