|
|
遇见一个难题,请教各位高手。
8 X# ~/ A# ^( a+ q/ _4 |7 G" L6 B1 ~1 M- J. @1 g# F2 e* d
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。$ a, v" H( z; a5 h' L& e
; H% Q; f' K9 }( s& J0 g
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。" s& n0 Z1 W1 V% P( v
& V' e6 b, L6 N" K! n3 l ^; I
is
: n5 U5 I" [8 B i,m: integer; -- 整数变量. g& @ a0 ?; D
Name:string; -- 字符串变量
( }& W. T- z; ^- r0 |" I Obj:Object; -- 对象类型变量! h$ j, p8 o/ z# I: F8 H
6 ^ \* a9 x: E. T% t
do
& B( j3 P( P5 m V2 R! n' L m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型* j4 ^$ Q' T7 X6 l; b* d: t
Name := sprint("BA", m); -- 生产线名称; a2 X- w/ U- D& n1 g* T
Obj := str_to_obj(Name); -- 转换成对象变量# ~. N6 K+ b* P5 P
5 y% h3 ]: y; E, U FOR i:=1 to 100 LOOP
/ V& F# i" v7 b6 r/ [ waituntil OBJ.occupied prio 1;, J. W/ P1 B8 P8 w& u- G9 \# T% y+ x
OBJ.cont.move(@);
! l+ D$ E) ~4 l% @ % R. N, h/ E, B- I4 J9 k
NEXT;
1 L: \- B% D; k# }4 w( v! C! ` @.backwards:=false;4 V5 ~& |) v6 _0 _
end;. ^& G# x. O9 B$ e6 m) a7 e0 `
|
|