|
遇见一个难题,请教各位高手。
: i) C' S! d, S) E) D) [; N. o& R; G# ~$ q- Z
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。* {5 q1 c& G+ I
2 f" D( L# K0 i: R# I* n$ |需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。* ~7 }' Z v0 w- H* ]
9 p" y% F W- Y% U! e, A
is
/ j% `( P0 M+ ]; A i,m: integer; -- 整数变量+ o% k* q; ^ \ T
Name:string; -- 字符串变量8 `0 |( ?, N. E
Obj:Object; -- 对象类型变量
4 {$ k! f% m* `" P3 p; @$ m6 c" D F/ w4 i
do
- h% [, L7 b2 [& k! _ m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型+ X% C1 Z9 p8 s0 }, t& X
Name := sprint("BA", m); -- 生产线名称6 W7 ?. b2 w( P7 H4 p
Obj := str_to_obj(Name); -- 转换成对象变量
9 t6 [$ D7 U& D9 i& M* R " Q% P' M7 n* f- ]
FOR i:=1 to 100 LOOP
* ~/ s7 h, \, x waituntil OBJ.occupied prio 1;
$ n2 t7 o# S5 i OBJ.cont.move(@); & Y; x) o! f: S3 _; M
7 g% c8 m- s! B: U2 C NEXT;
4 r# m7 ]8 a$ u# _ @.backwards:=false; y3 n' M/ E& L/ P( \4 z4 a
end;
2 ]3 Z! e/ r, ~7 _2 e& z6 Q |
|