|
遇见一个难题,请教各位高手。; u: g$ w& a1 P0 n' l5 l s
' y% F* Q+ x8 J' k) K' B% U- _. q使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。2 C/ i6 R; T Z4 J8 ^/ x
% _( M3 J4 C; C$ w# j# n- `0 x
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
3 S, e$ t, p5 r9 r" M' D8 J
# [( p# P% ]4 g# P8 _" p7 I is
0 W: Z$ J! H- W t. \ i,m: integer; -- 整数变量
% _; I! q% m1 `: q Name:string; -- 字符串变量# n; G( |( D5 g. E/ t3 c0 W4 l2 }8 j
Obj:Object; -- 对象类型变量5 b9 {6 N" w- F: f4 W& W7 h
& s' z7 c$ U' r- L3 }3 A) J2 u, l
do
0 _4 t# f& J' q% N; M; F( M m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型3 A, z( H3 X( g. b
Name := sprint("BA", m); -- 生产线名称
& S5 c0 x2 A: {: `! G: Q* o/ _ Obj := str_to_obj(Name); -- 转换成对象变量+ K' P- B$ Y, K
, f& E: a- n. y1 R, b; t) H% W# }
FOR i:=1 to 100 LOOP: ?- x2 b/ _& `9 g4 l
waituntil OBJ.occupied prio 1;
+ t* t4 o5 u9 u2 B/ p OBJ.cont.move(@);
+ @; }( S" k6 E/ I; V' e" Q& t( e & e0 ^# N/ d: i1 }+ T- D' ]2 Q
NEXT;0 G5 j; |: A: f8 ?
@.backwards:=false;
W: f" d( k* u2 ~/ u) H' r- Oend;: o; g/ F. N- a0 r
|
|