|
|
遇见一个难题,请教各位高手。% d& f& L, V; I2 n# D6 t! l
; m* P) `; y; M2 f9 n; X
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。; D" V/ M5 k9 `8 [5 n9 @
. X6 W9 [9 C) N }% {6 \
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。4 W) c) j- F0 L, Q+ E6 a
% G% h2 f u4 l% [
is
1 I8 W# [* N5 V! A& p3 w i,m: integer; -- 整数变量! J$ T0 d- s' n' ^9 W3 z2 p
Name:string; -- 字符串变量
) u) l m/ d# B( L9 @ Obj:Object; -- 对象类型变量! v: r; G/ p2 T! o* n
4 d0 e7 `* V0 g7 _; q( h3 l% w$ Q
do
; n k/ \- n z9 G% ` m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型% i: Y( D) E3 X/ F; \3 C
Name := sprint("BA", m); -- 生产线名称! t1 w7 C7 d) F( F+ J" ^, }" d7 B
Obj := str_to_obj(Name); -- 转换成对象变量6 {/ l' D' T; \
2 k) C/ Z( I! ^0 I9 [ t& }, B0 u6 ] FOR i:=1 to 100 LOOP! I3 Z9 }$ o/ a' M4 E8 O
waituntil OBJ.occupied prio 1;& d8 n* \( [! S7 S7 s- i
OBJ.cont.move(@);
. f+ t( b2 e' ~3 k: r$ D8 y
' Y S/ d h+ \' n NEXT;
3 F/ k+ D3 E" X& s, v9 L @.backwards:=false;
6 E# R5 O& |! l. _, n V# J0 y6 [end;
& y" T$ f9 }" A. s$ N6 x G |
|