|
|
遇见一个难题,请教各位高手。
; ~7 d0 ?4 v- E' J: ^# x
0 _. t9 u7 f& f. R, |, n5 g使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
4 E5 c7 O- ^) g3 m4 P
- A) n2 x& m2 F, v( t' a- T需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。 [+ ^# K, b+ y6 \- O* R4 P4 T
+ y! S8 b3 o; s! B is/ @: s0 D8 j n7 W" a
i,m: integer; -- 整数变量5 ]* `1 F# k6 z0 W7 o& L6 G2 Y
Name:string; -- 字符串变量
1 D0 }' ~9 s% t1 Y! g* C1 \+ H Obj:Object; -- 对象类型变量+ U+ u. x: n) w
4 a2 n- i P5 X$ Odo# X! `% S6 h; r2 M+ ~8 @
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型1 u0 Y% e2 c( s6 z: ~- k, K
Name := sprint("BA", m); -- 生产线名称
' A# |5 Z6 R3 V9 f' w6 Q- s0 N, E Obj := str_to_obj(Name); -- 转换成对象变量
9 S5 i* v% j% ]: d- U$ V/ C; V! } 7 v- Z: h. B) B$ L9 S
FOR i:=1 to 100 LOOP8 A& a5 g5 q, |" s
waituntil OBJ.occupied prio 1;/ L6 V! W! Y( g6 M
OBJ.cont.move(@); & Z: k5 V% P# S; m
" T: \, H; y" Y NEXT;$ M' E8 `) R3 [/ m. X G
@.backwards:=false;
K7 |6 j) b7 B/ X' N, v& c4 {- bend;
# _" C$ T6 P {1 W: _" T0 p |
|