|
|
遇见一个难题,请教各位高手。
8 ~3 @$ {" c7 B) @/ w+ r- y. A6 c% S* d& o
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
+ P% J# a; {, m0 b: u6 K C
! H. e0 X9 ~# P; u, d5 n需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。! D; H, C) u+ K& C3 R3 m' e: U
/ X7 ~: A& q0 L+ i( g5 U is
% z* W; r0 K( }! _: O: R i,m: integer; -- 整数变量4 P, X2 _" a j, x8 P! A& M' ^8 G
Name:string; -- 字符串变量
b7 r+ I! ^7 Z3 P Obj:Object; -- 对象类型变量. E K$ F* u: t: f9 X1 k
" T9 \3 Y# b* f/ p Udo2 L) `7 r$ Q4 n* a% N3 U
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型+ S7 w' v4 R/ _( {
Name := sprint("BA", m); -- 生产线名称
+ ]. I! J- @/ V Obj := str_to_obj(Name); -- 转换成对象变量, Q+ N7 Y. c7 I1 d% C! M
( c, x9 }4 H: E6 h; y8 T FOR i:=1 to 100 LOOP6 i1 W- ~6 [% e
waituntil OBJ.occupied prio 1;4 g& T2 T b& X1 [* y9 p
OBJ.cont.move(@);
- M9 n% [& M: Z; L R6 R7 C * v7 w6 J+ D$ p4 O/ _ @/ c
NEXT;, b, E+ z7 S: j" h4 \' i
@.backwards:=false;0 C! ^; u' ?* q) u1 d$ L5 Z$ R
end;$ Y3 k0 R, }( v3 S, v* {& P! t
|
|