|
|
遇见一个难题,请教各位高手。8 h5 m% C( c0 I
9 ]2 A, f e5 o( d7 n3 M5 l使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。. S) v3 A( J9 G
4 Y# K- D/ L. V需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。4 \. }3 k) O. \+ T+ m; }+ _
& Y# K6 q- G6 A; |5 x; ^, p: X% \ is" C0 J) T$ [/ \6 T
i,m: integer; -- 整数变量2 P! I/ N2 m; @ }' _3 i- x
Name:string; -- 字符串变量
3 v, ]9 ~7 \8 c( w" J* B e6 [ Obj:Object; -- 对象类型变量* Q0 m2 _( b4 H- l% y6 i* Y' n/ A# W
5 b: Y+ ?1 z. y
do! u6 ^& h( t3 x1 W! K) I
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
; q4 _- S% h- |6 k5 ^! g% d9 S Name := sprint("BA", m); -- 生产线名称/ i, v4 u. s8 ~; d- J2 e9 k
Obj := str_to_obj(Name); -- 转换成对象变量* J3 ?" S$ l% @1 ~$ F8 Z; P1 q( F
# N" T, E+ c8 B0 x3 o' T" A- I FOR i:=1 to 100 LOOP/ ^7 N# N2 F' r& B' G. D
waituntil OBJ.occupied prio 1;
# W+ C) v/ \; T8 z; y OBJ.cont.move(@);
- c+ ?7 B; u5 l 7 ]) }- L7 c6 p# H5 m
NEXT;: B% Q5 U, Y# |! @3 Z
@.backwards:=false;, H. u% G; b0 m: C/ f& h, m
end;
* P9 b/ @" Q9 u- k. Z2 m! N( j+ l |
|