|
|
遇见一个难题,请教各位高手。4 P) E' e; K" r/ Z" Y. b: `4 Z( a
. a# a: p9 n. ?; m
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。8 h* k7 L: o" h9 K% p9 r% k; l
p! L( O/ L! ~. y2 t# ~需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
8 ^+ B6 g' i/ Q1 w# Y
7 ?/ q, A& _ S* G# O9 R is" h+ {7 k. o! ~& T4 p$ Y
i,m: integer; -- 整数变量+ P6 [6 c6 K1 I
Name:string; -- 字符串变量 r! G+ C M- u& I1 ~$ q
Obj:Object; -- 对象类型变量
4 x- P6 }2 ^( u h2 x& o6 s6 Q/ j& {* E# n7 N8 U4 x0 N+ s! r
do& D+ z6 l3 @2 ~ J1 T6 ?
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型" l- A8 d1 _/ ~3 b$ |" h( i$ g8 n; u
Name := sprint("BA", m); -- 生产线名称
+ ?! W; c& R8 {4 q( J Obj := str_to_obj(Name); -- 转换成对象变量6 i% H+ I2 l/ s6 D: O& d
* ^6 X+ D7 n$ N5 _. ]
FOR i:=1 to 100 LOOP& K6 D% I1 h6 D- @3 j: L6 P5 M* V+ O2 Q9 Z! p
waituntil OBJ.occupied prio 1;9 _+ L5 a" |3 ~6 s( M u- z
OBJ.cont.move(@); ) a* Y7 w# w- ?) X# d- U2 y. ~
- v9 d8 i A/ r! y4 m- a NEXT;
3 Z4 s' v. ~+ {: J @.backwards:=false;3 O4 e3 `& ?. c2 H' O& @! Q% ^
end;" v( U0 u' W: ?4 x* x% p
|
|