|
|
遇见一个难题,请教各位高手。) L2 w( U8 I- @4 b
$ U8 W2 r( [5 s7 E
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。6 o. e" ]6 q+ F- p) ^/ D
$ z1 X, a, I2 e需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
7 _2 k9 }. h8 }. R }
) ^8 ^- r# [. G' U0 k is& `; G) r' E. I9 d7 o8 r8 @
i,m: integer; -- 整数变量
9 g8 s, H# P" i Name:string; -- 字符串变量$ V0 R- ^) w4 z0 u1 w) g
Obj:Object; -- 对象类型变量
) }3 @# I8 ?1 o. i" S
6 f" P$ V3 ?! h2 \9 Z- N% [) Mdo
* S4 W, K- ^# P m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型; r8 v4 J5 {' j- \
Name := sprint("BA", m); -- 生产线名称
9 U$ t5 r/ [" C+ Z Obj := str_to_obj(Name); -- 转换成对象变量
7 s0 N! S( D, X% F6 v$ u
5 X; ^' b) O6 z) _ O5 Q FOR i:=1 to 100 LOOP
: j( u" B% `% P) d waituntil OBJ.occupied prio 1;/ b/ O I8 ~$ I4 \
OBJ.cont.move(@); 3 s! V4 }8 c; p# S
( t, {+ u# W: F# R2 L# A3 u9 A
NEXT;1 s1 v! ~" x+ G
@.backwards:=false;( D/ m# a5 h! L* x. N7 y1 @
end;2 Y2 b7 h1 o) m8 Q
|
|