|
遇见一个难题,请教各位高手。
$ v3 C& i8 a; [/ Q8 q7 {* k* j7 @1 @+ l# h
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。; A: x; R4 M; X0 c2 X; v2 }' ~
6 ]) v" M4 `5 R8 Z2 N
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
* z# g, ]& S; Y# r7 A# w
' ~, P) H9 z% U2 u! \' L4 X0 p is
- t- x3 z: E/ f) c' M4 H& B% H: Z i,m: integer; -- 整数变量% T2 O' b2 N3 t! ~! N
Name:string; -- 字符串变量
& ]% J% ^1 e! H! F Obj:Object; -- 对象类型变量- _! W# D, d! } k
r+ k; n6 T, G2 o4 Fdo
" w+ M. G1 V0 z; q9 K m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
8 u% I/ J, B$ \. h% r, E h Name := sprint("BA", m); -- 生产线名称9 A' d( ?: O1 U' {
Obj := str_to_obj(Name); -- 转换成对象变量+ u; H6 a" {1 D) R/ @& [
! j! w8 ~4 c% Y! n5 b; i
FOR i:=1 to 100 LOOP2 T/ W$ U. D9 ~# e! C2 f
waituntil OBJ.occupied prio 1;: |5 M% l4 y0 I" e; _& j, Z
OBJ.cont.move(@); 2 X' \0 F! R7 c [9 z1 ^
& Z. O$ o( Y2 Z3 I NEXT;( @) f2 r! M/ H1 p/ B- @+ x( A5 u
@.backwards:=false;
6 E6 L% ?) m' a* a" Mend;( U6 {5 O2 C, C i; S. k0 H$ Y+ t0 U9 _
|
|