|
|
遇见一个难题,请教各位高手。
: u7 z4 B# o5 \9 x* `
9 B& z) w- _0 ?& r* P使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。3 L- g/ S6 \# p- H$ S8 y
2 P/ q9 h! r) l/ O) v) f3 s0 s$ d S9 D
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。! S d% e2 D4 y- R' f
& G. U' A4 T1 r
is
' L) A( n1 I( q5 x3 t! \ i,m: integer; -- 整数变量
! y0 @2 ?5 A T% R% ? Name:string; -- 字符串变量/ P! W1 x- W3 l S0 l
Obj:Object; -- 对象类型变量5 `6 M: W+ \, B! u' {% y
5 B6 e+ x# w3 z1 v6 R% Ldo1 {, H1 e( U( ?
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
. ?2 ` W+ I# K/ ^2 b( j Name := sprint("BA", m); -- 生产线名称. u* I: d5 u' O& R
Obj := str_to_obj(Name); -- 转换成对象变量( k e) f E2 P9 {( K( `8 a4 Y8 e# d
1 r' v3 s4 J* g$ x, J/ l FOR i:=1 to 100 LOOP
- S9 X' ]- e6 K+ d1 J waituntil OBJ.occupied prio 1;1 s) j) W5 |0 [) I! g
OBJ.cont.move(@); " Z, e0 l8 f; I1 x( l
+ m% ?& V& g( n+ A# @ NEXT;+ S) z9 R7 S$ d1 c! b0 Y
@.backwards:=false;
; q" H1 B/ {7 V+ Oend;/ Q# y; {: h" ?5 M) R
|
|